added samples
[windows-sources.git] / sdk / samples / WCFSamples / TechnologySamples / Extensibility / Security / DurableIssuedTokenProvider / CS / DurableIssuedTokenClientCredentials / DurableIssuedTokenClientCredentials.cs
blobe408cfa999e0c0149ee9245b7503c56ad0996029
1 //-----------------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All rights reserved.
3 //-----------------------------------------------------------------------------
5 using System;
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()
24 : base()
28 DurableIssuedTokenClientCredentials(DurableIssuedTokenClientCredentials other)
29 : base(other)
31 this.cache = other.cache;
34 public IssuedTokenCache IssuedTokenCache
36 get
38 return this.cache;
40 set
42 this.cache = value;
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)
61 : base(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);
72 else
74 return base.CreateSecurityTokenProvider(tokenRequirement);