Example #1
0
        public async Task SaveTokenAsync(int userId, string audience, KeyValuePair <string, string> token, ILoginUow loginUow)
        {
            var applicationUserToken = new ApplicationUserToken
            {
                AudienceType    = audience,
                CreatedDateTime = DateTime.UtcNow,
                UserId          = userId,
                JwtToken        = token.Value,
                SecurityKey     = token.Key
            };
            await loginUow.RegisterNewAsync <ApplicationUserToken>(applicationUserToken);

            await loginUow.CommitAsync();

            this.Tokens.AddOrUpdate(token.Key, token.Value, (x, y) => token.Value);
        }
 public AuthenticationController(ILoginUow loginUow, IApplicationTokenProvider tokenProvider, IPasswordHash passwordHash)
 {
     this.LoginUow            = loginUow;
     ApplicationTokenProvider = tokenProvider;
     PasswordHash             = passwordHash;
 }
 public ApplicationTokenProvider(IJwtTokenProvider tokenProvider, UserAccessConfigInfo userAccessConfig, ILoginUow loginUow, IUserClaim userClaim, IHttpContextAccessor contextAccessor)
 {
     TokenProvider    = tokenProvider;
     UserAccessConfig = userAccessConfig;
     LoginUow         = loginUow;
     UserClaim        = userClaim;
     ContextAccessor  = contextAccessor;
 }
Example #4
0
        public async Task <bool> GetAccessInfoAsync(int userId, int applicationModuleId, string action, ILoginUow loginUow, bool cachedCall = false)
        {
            Dictionary <int, Dictionary <string, bool> > moduleIds;

            if (this.AccessInfo.TryGetValue(userId, out moduleIds))
            {
                Dictionary <string, bool> actionAccess;
                if (moduleIds.TryGetValue(applicationModuleId, out actionAccess))
                {
                    bool value;
                    if (actionAccess.TryGetValue(action, out value))
                    {
                        return(value);
                    }
                }
            }
            else
            {
                if (!cachedCall)
                {
                    await this.CacheAccessInfoAsync(loginUow, userId);

                    return(await this.GetAccessInfoAsync(userId, applicationModuleId, action, loginUow));
                }
            }
            return(false);
        }
Example #5
0
        public async Task <Dictionary <int, Dictionary <string, bool> > > GetFullInfoAsync(int userId, ILoginUow loginUow)
        {
            Dictionary <int, Dictionary <string, bool> > modules = null;

            if (!this.AccessInfo.TryGetValue(userId, out modules))
            {
                await this.CacheAccessInfoAsync(loginUow, userId);

                this.AccessInfo.TryGetValue(userId, out modules);
            }
            return(modules);
        }
 public ApplicationTokenProvider(IJwtTokenProvider tokenProvider, UserAccessConfigInfo userAccessConfig, ILoginUow loginUow, IUserClaim userClaim)
 {
     TokenProvider    = tokenProvider;
     UserAccessConfig = userAccessConfig;
     LoginUow         = loginUow;
     UserClaim        = userClaim;
 }