を書き直してカスタマイズされた承認ロジックを実現できます。このメソッドは、AuthorizeAttribute
に存在しなくなりました。 bool AuthorizeCore(HttpContextBase httpContext)
AuthorizeAttribute
戦略を使用する現在の方法
:
Startup.cs
options.AddPolicy("YourPolicyName", policy => policy.RequireClaim(...));
[Authorize]
ステートメントのカスタマイズされた承認属性を使用
[Authorize(Policy = "YourPolicyName")] public IActionResult Action(...)
例:IAuthorizationFilter
AuthorizeAttribute
public class ClaimRequirementAttribute : TypeFilterAttribute { public ClaimRequirementAttribute(string claimType, string claimValue) : base(typeof(ClaimRequirementFilter)) { Arguments = new object[] { new Claim(claimType, claimValue) }; } } public class ClaimRequirementFilter : IAuthorizationFilter { private readonly Claim _claim; public ClaimRequirementFilter(Claim claim) { _claim = claim; } public void OnAuthorization(AuthorizationFilterContext context) { bool hasClaim = context.HttpContext.User.Claims.Any(c => c.Type == _claim.Type && c.Value == _claim.Value); if (!hasClaim) { context.Result = new ForbidResult(); } } }
以上がクレームを使用してASP.NETコアにカスタム認証を実装する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。