public async Task <bool> HandleRequirementAsync(AuthorizationHandlerContext context, AccessPermissionRequirement requirement)
        {
            var loginUow      = ContextAccessor.HttpContext.RequestServices.GetService(typeof(ILoginUow)) as ILoginUow;
            var requestMethod = string.IsNullOrEmpty(requirement.ActionType) ? ContextAccessor.HttpContext.Request.Method.ToLower() : requirement.ActionType;
            var haveAccess    = await UserAccessConfig.GetAccessInfoAsync(GetUserId(context.User), requirement.ApplicationModuleId, requestMethod, loginUow);

            return(haveAccess);
        }
        public async Task <KeyValuePair <string, string> > GetTokenAsync(vUser user)
        {
            var token = TokenProvider.WriteToken(new[] {
                new Claim(
                    ClaimTypes.NameIdentifier, user.UserId.ToString()),
                new Claim(ClaimTypes.Locality, user.LanguageCode),
                new Claim(CustomClaimTypes.TimeZone, user.ApplicationTimeZoneName)
            }, "Web", "User", DateTime.Now.AddDays(2));
            await UserAccessConfig.SaveTokenAsync(user.UserId, "web", token, LoginUow);

            return(token);
        }
Example #3
0
        protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, AccessPermissionRequirement requirement)
        {
            var requestMethod = ContextAccessor.HttpContext.Request.Method.ToUpper();

            if (UserAccessConfig.Get(1, requirement.ApplicationModuleId, requestMethod))
            {
                context.Succeed(requirement);
            }
            else
            {
                context.Fail();
            }
            return(Task.CompletedTask);
        }
Example #4
0
        public async Task <string> RefereshTokenAsync(FacebookUser user, UserConfig userConfig)
        {
            if (!string.IsNullOrEmpty(userConfig.LanguageCode))
            {
                var userRecord = await LoginUow.Repository <FacebookUser>().SingleAsync(t => t.UserID == user.UserID);

                await LoginUow.RegisterDirtyAsync <FacebookUser>(userRecord);

                await LoginUow.CommitAsync();
            }
            await UserAccessConfig.RemoveTokenAsync(user.UserID, userConfig.AudienceType, LoginUow);

            return(await this.GetTokenAsync(user));
        }
        protected override async Task HandleRequirementAsync(AuthorizationHandlerContext context, AccessPermissionRequirement requirement)
        {
            var loginUow      = ContextAccessor.HttpContext.RequestServices.GetService(typeof(ILoginUow)) as ILoginUow;
            var requestMethod = ContextAccessor.HttpContext.Request.Method.ToLower();
            var haveAccess    = await UserAccessConfig.GetAccessInfoAsync(GetUserId(context.User), requirement.ApplicationModuleId, requestMethod, loginUow);

            if (haveAccess)
            {
                context.Succeed(requirement);
            }
            else
            {
                context.Fail();
            }
        }
        public async Task <KeyValuePair <string, string> > RefereshTokenAsync(vUser user, UserConfig userConfig)
        {
            if (!string.IsNullOrEmpty(userConfig.LanguageCode))
            {
                var userRecord = await LoginUow.Repository <User>().SingleAsync(t => t.UserId == user.UserId);

                userRecord.LanguageCode = userConfig.LanguageCode;
                await LoginUow.RegisterDirtyAsync <User>(userRecord);

                await LoginUow.CommitAsync();
            }
            await UserAccessConfig.RemoveTokenAsync(user.UserId, userConfig.AudienceType, LoginUow);

            return(await this.GetTokenAsync(user));
        }
Example #7
0
        public async Task <string> GetTokenAsync(vUser user)
        {
            var expirationTime = user.UserId == 0 ? DateTime.UtcNow.AddDays(1) : DateTime.UtcNow.AddMinutes(30);
            var token          = TokenProvider.WriteToken(new[] {
                new Claim(
                    ClaimTypes.NameIdentifier, user.UserId.ToString()),
                new Claim(ClaimTypes.Anonymous, (user.UserId == 0).ToString()),
                new Claim(ClaimTypes.Locality, user.LanguageCode),
                new Claim(CustomClaimTypes.TimeZone, user.ApplicationTimeZoneName)
            }, "Web", "User", expirationTime);

            if (user.UserId != 0)
            {
                await UserAccessConfig.SaveTokenAsync(user.UserId, "web", token, LoginUow);
            }
            this.AddCookie(user, token.Key);
            return(token.Value);
        }
Example #8
0
        public async Task <IActionResult> Get()
        {
            var accessModules = await UserAccessConfig.GetFullInfoAsync(UserClaim.UserId, LoginUow);

            return(Ok(JsonConvert.SerializeObject(accessModules)));
        }
Example #9
0
 public async Task RemoveTokenAsync(UserConfig userConfig)
 {
     this.RemoveCookie();
     await UserAccessConfig.RemoveTokenAsync(UserClaim.UserId, userConfig.AudienceType, LoginUow);
 }