public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { //检查权限 if (AuthCode.IsNotNullOrEmpty()) { var userId = ViewContext.HttpContext.User.GetUserIdOrZero(); if (userId == 0) { return; } var result = await _service.CheckUserAuth(userId, AuthCode); if (!result) { return; } } await base.ProcessAsync(context, output); }
private async Task <bool> CheckPermissionAsync(AuthorizationHandlerContext context, AuthAttribute attribute, string baseCode = null) { if (attribute == null) { return(true); } if (attribute.AuthCode.IsNullOrEmpty()) { return(context.User != null && context.User.GetUserIdOrZero() != 0); } var userId = context.User.GetUserIdOrZero(); if (userId == 0) { return(false); } return(await service.CheckUserAuth(userId, (baseCode.IsNullOrEmpty() || attribute.IsFullAuthCode)?attribute.AuthCode : $"{baseCode}.{attribute.AuthCode}")); }