public UserAuthAttribute(UserAuthOption userOption) { if (userOption.UserProvider == null) { throw new Exception("UserAuthOption 中 UserProvider 接口对象必须提供!"); } p_Order = -10; _userOption = userOption; p_IsWebSite = userOption.IsWebSite; }
private static Task <Resp> CheckFunc(HttpContext context, AppIdentity appInfo, UserAuthOption opt) { var userInfo = UserContext.Identity; if (userInfo == null || // 非需授权认证请求 opt.FuncProvider == null || userInfo.auth_type == PortalAuthorizeType.SuperAdmin) { return(Task.FromResult(new Resp())); } return(opt.FuncProvider.CheckFuncPermission(context, userInfo, appInfo.func)); }
private static async Task <Resp> FormatUserIdentity(AuthorizationFilterContext context, AppIdentity appInfo, UserAuthOption opt) { if (context.ActionDescriptor.EndpointMetadata.Any(filter => filter is IAllowAnonymous)) { return(new Resp()); } if (opt.IsWebSite && string.IsNullOrEmpty(appInfo.token)) { appInfo.token = context.HttpContext.Request.Cookies[CookieKeys.UserCookieName]; } if (string.IsNullOrEmpty(appInfo.token)) { return(new Resp().WithResp(RespTypes.UnLogin, "请先登录!")); } var identityRes = await opt.UserProvider.InitialAuthUserIdentity(context.HttpContext, appInfo); if (!identityRes.IsSuccess()) { return(identityRes); } UserContext.SetIdentity(identityRes.data); return(identityRes); }
private static async Task <Resp> FormatUserIdentity(AuthorizationFilterContext context, AppIdentity appInfo, UserAuthOption opt) { var identityRes = await opt.UserProvider.InitialIdentity(context.HttpContext, appInfo); if (!identityRes.IsSuccess()) { return(identityRes); } UserContext.SetIdentity(identityRes.data); return(identityRes); }