using Furion.Authorization; using Microsoft.AspNetCore.Authorization; namespace DocumentServiceAPI.Web.Entry { /// /// 鉴权 /// public class AuthorizeHandler:AppAuthorizeHandler { /// /// 请求管道 /// /// /// /// public override Task PipelineAsync(AuthorizationHandlerContext context, DefaultHttpContext httpContext) { // 此处已经自动验证 Jwt token的有效性了,无需手动验证 // 检查权限,如果方法是异步的就不用 Task.FromResult 包裹,直接使用 async/await 即可 return Task.FromResult(CheckAuthorzie(httpContext)); } /// /// 检查权限 /// /// /// private static bool CheckAuthorzie(DefaultHttpContext httpContext) { // 获取权限特性 var securityDefineAttribute = httpContext.GetMetadata(); if (securityDefineAttribute == null) return true; return false;// "查询数据库返回是否有权限"; } } }