Maison >développement back-end >C++ >Comment implémenter l'autorisation personnalisée dans ASP.NET Core en utilisant les réclamations?
Utilisez une instruction dans ASP.NET Core pour réaliser des attributs d'autorisation personnalisés
pour réaliser la logique d'autorisation personnalisée. Cette méthode n'existe plus dans AuthorizeAttribute
. bool AuthorizeCore(HttpContextBase httpContext)
AuthorizeAttribute
La méthode actuelle d'utilisation de la stratégie
Définir la stratégie dans :
Startup.cs
<code class="language-csharp"> options.AddPolicy("YourPolicyName", policy => policy.RequireClaim(...));</code>
[Authorize]
en utilisant les attributs d'autorisation personnalisés de l'instruction
<code class="language-csharp"> [Authorize(Policy = "YourPolicyName")] public IActionResult Action(...)</code>Si la méthode basée sur la stratégie n'est pas applicable, vous pouvez utiliser l'interface
Comment utiliser des exemples: 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>dans votre filtre, vous pouvez spécifier la logique d'autorisation en fonction de l'instruction.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!