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); }
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); }
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)); }
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); }
public async Task <IActionResult> Get() { var accessModules = await UserAccessConfig.GetFullInfoAsync(UserClaim.UserId, LoginUow); return(Ok(JsonConvert.SerializeObject(accessModules))); }
public async Task RemoveTokenAsync(UserConfig userConfig) { this.RemoveCookie(); await UserAccessConfig.RemoveTokenAsync(UserClaim.UserId, userConfig.AudienceType, LoginUow); }