Créez une autorisation personnalisée
ASP.NET CORE
vous permet de spécifier les exigences d'autorisation pour l'opération ou le contrôleur. Bien que la première version fournit la méthode , cette méthode a été remplacée.
AuthorizeAttribute
Méthode actuelle: Politiques AuthorizeCore
La méthode de recommandation pour créer un attribut autorisé personnalisé est d'utiliser des stratégies. Dans le fichier de la demande, vous pouvez enregistrer une stratégie personnalisée et les associer à des exigences spécifiques. Par exemple:
Ensuite, dans votre contrôleur, vous pouvez utiliser la stratégie spécifiée de l'attribut : Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthorization(options =>
{
options.AddPolicy("RequireAge18", policy => policy.RequireClaim(MyClaimTypes.Age, "18"));
});
}
Copier après la connexion
<替> Méthode alternative: iAutorizationFilter [Authorize]
Cependant, pour le scénario plus simple, l'interface [Authorize(Policy = "RequireAge18")]
public class MyController : Controller { }
Copier après la connexion
fournit une méthode pour réaliser une logique d'autorisation personnalisée. Vous pouvez définir les nouveaux attributs de <继> hériter et spécifier le filtre personnalisé:
Ensuite, vous pouvez utiliser vos attributs pour le fonctionnement ou le contrôleur:
IAuthorizationFilter
<结> Résumé TypeFilterAttribute
public class ClaimRequirementAttribute : TypeFilterAttribute
{
public ClaimRequirementAttribute(string claimType, string claimValue) : base(typeof(ClaimRequirementFilter))
{
Arguments = new object[] { new Claim(claimType, claimValue) };
}
}
public class ClaimRequirementFilter : IAuthorizationFilter
{
readonly Claim _claim;
public ClaimRequirementFilter(Claim claim)
{
_claim = claim;
}
public void OnAuthorization(AuthorizationFilterContext context)
{
var hasClaim = context.HttpContext.User.Claims.Any(c => c.Type == _claim.Type && c.Value == _claim.Value);
if (!hasClaim)
{
context.Result = new ForbidResult();
}
}
}
Copier après la connexion
Selon vos besoins spécifiques, ASP.NET Core fournit deux méthodes pour créer des attributs d'autorisation personnalisés: stratégie et interface. Choisissez le plus conformément aux exigences de votre application.
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!