Custom AuthorizeAttribute erstellen
Mit ASP.NET CORE
können Sie die Autorisierungsanforderungen für den Betrieb oder den Controller angeben. Obwohl die frühe Version die Methode enthält, wurde diese Methode ersetzt.
AuthorizeAttribute
Strommethode: Richtlinien AuthorizeCore
Die Empfehlungsmethode zum Erstellen eines maßgeschneiderten autorisierten Attributs besteht darin, Strategien zu verwenden. In der Datei der Anwendung können Sie eine benutzerdefinierte Strategie registrieren und mit spezifischen Anforderungen assoziieren. Zum Beispiel:
In Ihrem Controller können Sie dann das angegebene Strategie verwenden: Startup.cs
public void ConfigureServices(IServiceCollection services) { services.AddAuthorization(options => { options.AddPolicy("RequireAge18", policy => policy.RequireClaim(MyClaimTypes.Age, "18")); }); }
[Authorize]
[Authorize(Policy = "RequireAge18")] public class MyController : Controller { }
Dann können Sie Ihre Attribute für den Betrieb oder den Controller verwenden:
IAuthorizationFilter
<结> Zusammenfassung 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(); } } }
Schnittstelle. Wählen Sie die am besten im Einklang mit Ihren Anwendungsanforderungen.
Das obige ist der detaillierte Inhalt vonWie erstelle ich benutzerdefinierte Autorisierungsattribute im ASP.NET -Kern mit Richtlinien und iautorisierungsfilter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!