カスタムAuthorizeFilter

使用してMicrosoft.AspNetCore.Authorizationを。
使用してMicrosoft.AspNetCore.Authorization.Infrastructureを。
使用してMicrosoft.AspNetCore.Mvcを。
使用してMicrosoft.AspNetCore.Mvc.Authorizationを。
使用してMicrosoft.AspNetCore.Mvc.Filtersを。
使用してシステムを。
使用してSystem.Collections.Genericを。
使用してSystem.Linqのを。
使用してSystem.Threading.Tasksを。
使用してWeTax.CommonLibrary.Models.Enumを。

名前空間MerchantsApi.Filters 
{ 
    パブリック クラスMerchantAuthorizeAttribute:AuthorizeFilter 
    { 
        プライベート 静的AuthorizationPolicy _policy_ = 新しい AuthorizationPolicy(新しい [] { 新しい DenyAnonymousAuthorizationRequirement()}、新しい 文字列[] {})。

        パブリック MerchantAuthorizeAttribute():ベース(_policy_)
        {} 

        公共 オーバーライド 非同期タスクOnAuthorizationAsync(AuthorizationFilterContextコンテキスト)
        { 
            場合ストリング .IsNullOrEmpty(context.HttpContext.User.Claims.FirstOrDefault(X => x.Type == " USERID ")?.VALUE))
            { 
                context.Result =化するJsonResult( WeTax.CommonLibrary.Models.WebApiResult(ApiResultCode.Fail、" 请登录" )); 
            } 
            待つ 基地.OnAuthorizationAsync(コンテキスト)。
        } 
    } 
}
            services.AddMvc(オプション=> 
            { 
                options.Filters.Add <MerchantAuthorizeAttribute> ();
                 // options.Filters.Add <AuthExceptionFilter>(); 
            })。SetCompatibilityVersion(CompatibilityVersion.Version_2_1)。

 

おすすめ

転載: www.cnblogs.com/chenyishi/p/10984491.html
おすすめ