| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- //-----------------------------------------------------------------------------
- // Copyright (c) Microsoft Corporation. All rights reserved.
- //-----------------------------------------------------------------------------
- namespace System.ServiceModel.Security
- {
- using System.Net;
- using System.Security.Principal;
- using System.ServiceModel;
- public sealed class HttpDigestClientCredential
- {
- TokenImpersonationLevel allowedImpersonationLevel = WindowsClientCredential.DefaultImpersonationLevel;
- NetworkCredential digestCredentials;
- bool isReadOnly;
- internal HttpDigestClientCredential()
- {
- this.digestCredentials = new NetworkCredential();
- }
- internal HttpDigestClientCredential(HttpDigestClientCredential other)
- {
- this.allowedImpersonationLevel = other.allowedImpersonationLevel;
- this.digestCredentials = SecurityUtils.GetNetworkCredentialsCopy(other.digestCredentials);
- this.isReadOnly = other.isReadOnly;
- }
- public TokenImpersonationLevel AllowedImpersonationLevel
- {
- get
- {
- return this.allowedImpersonationLevel;
- }
- set
- {
- ThrowIfImmutable();
- this.allowedImpersonationLevel = value;
- }
- }
- public NetworkCredential ClientCredential
- {
- get
- {
- return this.digestCredentials;
- }
- set
- {
- ThrowIfImmutable();
- this.digestCredentials = value;
- }
- }
- internal void MakeReadOnly()
- {
- this.isReadOnly = true;
- }
- void ThrowIfImmutable()
- {
- if (this.isReadOnly)
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ObjectIsReadOnly)));
- }
- }
- }
- }
|