Line data Source code
1 : using cdmdotnet.StateManagement;
2 :
3 : namespace Cqrs.Authentication
4 : {
5 : public class AuthenticationTokenHelper
6 : : AuthenticationTokenHelper<ISingleSignOnToken>
7 : , IAuthenticationTokenHelper<ISingleSignOnTokenWithUserRsn>
8 : , IAuthenticationTokenHelper<ISingleSignOnTokenWithCompanyRsn>
9 : , IAuthenticationTokenHelper<ISingleSignOnTokenWithUserRsnAndCompanyRsn>
10 : {
11 : private const string CallContextPermissionScopeValueKey = "SingleSignOnTokenValue";
12 :
13 0 : public AuthenticationTokenHelper(IContextItemCollectionFactory factory)
14 : : base(factory)
15 : {
16 : CacheKey = CallContextPermissionScopeValueKey;
17 : }
18 :
19 0 : public ISingleSignOnTokenWithUserRsnAndCompanyRsn SetAuthenticationToken(ISingleSignOnTokenWithUserRsnAndCompanyRsn token)
20 : {
21 : SetAuthenticationToken((ISingleSignOnToken)token);
22 : return token;
23 : }
24 :
25 0 : public ISingleSignOnTokenWithCompanyRsn SetAuthenticationToken(ISingleSignOnTokenWithCompanyRsn token)
26 : {
27 : SetAuthenticationToken((ISingleSignOnToken)token);
28 : return token;
29 : }
30 :
31 0 : public ISingleSignOnTokenWithUserRsn SetAuthenticationToken(ISingleSignOnTokenWithUserRsn token)
32 : {
33 : SetAuthenticationToken((ISingleSignOnToken)token);
34 : return token;
35 : }
36 :
37 : ISingleSignOnTokenWithUserRsn IAuthenticationTokenHelper<ISingleSignOnTokenWithUserRsn>.GetAuthenticationToken()
38 : {
39 : return Cache.GetData<ISingleSignOnTokenWithUserRsn>(CallContextPermissionScopeValueKey);
40 : }
41 :
42 : ISingleSignOnTokenWithCompanyRsn IAuthenticationTokenHelper<ISingleSignOnTokenWithCompanyRsn>.GetAuthenticationToken()
43 : {
44 : return Cache.GetData<ISingleSignOnTokenWithCompanyRsn>(CallContextPermissionScopeValueKey);
45 : }
46 :
47 : ISingleSignOnTokenWithUserRsnAndCompanyRsn IAuthenticationTokenHelper<ISingleSignOnTokenWithUserRsnAndCompanyRsn>.GetAuthenticationToken()
48 : {
49 : return Cache.GetData<ISingleSignOnTokenWithUserRsnAndCompanyRsn>(CallContextPermissionScopeValueKey);
50 : }
51 : }
52 :
53 : public class AuthenticationTokenHelper<TToken1>
54 : : IAuthenticationTokenHelper<TToken1>
55 0 : {
56 : protected string CacheKey = string.Format("{0}AuthenticationToken", typeof(TToken1).FullName);
57 :
58 : protected IContextItemCollection Cache { get; private set; }
59 :
60 0 : public AuthenticationTokenHelper(IContextItemCollectionFactory factory)
61 : {
62 : Cache = factory.GetCurrentContext();
63 : }
64 :
65 : #region Implementation of IAuthenticationTokenHelper<out TToken1>
66 :
67 0 : public TToken1 SetAuthenticationToken(TToken1 token)
68 : {
69 : Cache.SetData(CacheKey, token);
70 : return token;
71 : }
72 :
73 0 : public TToken1 GetAuthenticationToken()
74 : {
75 : return Cache.GetData<TToken1>(CacheKey);
76 : }
77 :
78 : #endregion
79 : }
80 : }
|