使用して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)。