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
options.AddPolicy("YourPolicyName", policy => policy.RequireClaim(...));
[Authorize]
en utilisant les attributs d'autorisation personnalisés de l'instruction
[Authorize(Policy = "YourPolicyName")] public IActionResult Action(...)
Comment utiliser des exemples: 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(); } } }
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!