Heim >Backend-Entwicklung >C++ >Wie erstelle ich benutzerdefinierte Autorisierungsattribute im ASP.NET -Kern mit Richtlinien und iautorisierungsfilter?
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
<code class="language-csharp">public void ConfigureServices(IServiceCollection services) { services.AddAuthorization(options => { options.AddPolicy("RequireAge18", policy => policy.RequireClaim(MyClaimTypes.Age, "18")); }); }</code>Alternative Methode: iautorizationFilter
[Authorize]
<code class="language-csharp">[Authorize(Policy = "RequireAge18")] public class MyController : Controller { }</code>Schnittstelle eine Methode zur Erzielung einer kundenspezifischen Autorisierungslogik. Sie können die neuen Attribute von erben und den benutzerdefinierten Filter angeben:
Dann können Sie Ihre Attribute für den Betrieb oder den Controller verwenden:
IAuthorizationFilter
Zusammenfassung TypeFilterAttribute
<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 { 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(); } } }</code>entsprechend Ihren spezifischen Anforderungen bietet ASP.NET Core zwei Methoden zum Erstellen von maßgeschneiderten Autorisierungsattributen: Strategie und
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!