1 //-----------------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All rights reserved.
3 //-----------------------------------------------------------------------------
7 using System
.IdentityModel
.Selectors
;
9 using System
.Security
.Permissions
;
11 using System
.ServiceModel
;
12 using System
.ServiceModel
.Description
;
13 using System
.ServiceModel
.Security
.Tokens
;
15 [assembly
: SecurityPermission(
16 SecurityAction
.RequestMinimum
, Execution
= true)]
17 namespace Microsoft
.ServiceModel
.Samples
19 public class DurableIssuedTokenClientCredentials
: ClientCredentials
21 IssuedTokenCache cache
;
23 public DurableIssuedTokenClientCredentials()
28 DurableIssuedTokenClientCredentials(DurableIssuedTokenClientCredentials other
)
31 this.cache
= other
.cache
;
34 public IssuedTokenCache IssuedTokenCache
46 protected override ClientCredentials
CloneCore()
48 return new DurableIssuedTokenClientCredentials(this);
51 public override SecurityTokenManager
CreateSecurityTokenManager()
53 return new DurableIssuedTokenClientCredentialsTokenManager((DurableIssuedTokenClientCredentials
)this.Clone());
56 class DurableIssuedTokenClientCredentialsTokenManager
: ClientCredentialsSecurityTokenManager
58 IssuedTokenCache cache
;
60 public DurableIssuedTokenClientCredentialsTokenManager(DurableIssuedTokenClientCredentials creds
)
63 this.cache
= creds
.IssuedTokenCache
;
66 public override SecurityTokenProvider
CreateSecurityTokenProvider(SecurityTokenRequirement tokenRequirement
)
68 if (IsIssuedSecurityTokenRequirement(tokenRequirement
))
70 return new DurableIssuedSecurityTokenProvider((IssuedSecurityTokenProvider
)base.CreateSecurityTokenProvider(tokenRequirement
), this.cache
);
74 return base.CreateSecurityTokenProvider(tokenRequirement
);