を書き直してカスタマイズされた承認ロジックを実現できます。このメソッドは、AuthorizeAttribute
に存在しなくなりました。 bool AuthorizeCore(HttpContextBase httpContext)
AuthorizeAttribute
戦略を使用する現在の方法
:
Startup.cs
<code class="language-csharp"> options.AddPolicy("YourPolicyName", policy => policy.RequireClaim(...));</code>
[Authorize]
ステートメントのカスタマイズされた承認属性を使用
<code class="language-csharp"> [Authorize(Policy = "YourPolicyName")] public IActionResult Action(...)</code>戦略ベースのメソッドが適用されない場合、
例:IAuthorizationFilter
AuthorizeAttribute
<code class="language-csharp">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(); } } }</code>メソッドを実装することにより、ステートメントに従って承認ロジックを指定できます。
以上がクレームを使用してASP.NETコアにカスタム認証を実装する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。