Heim >Backend-Entwicklung >C++ >So implementieren Sie benutzerdefinierte Autorisierung in ASP.NET Core mit Ansprüchen?

So implementieren Sie benutzerdefinierte Autorisierung in ASP.NET Core mit Ansprüchen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-02-01 18:16:10338Durchsuche

How to Implement Custom Authorization in ASP.NET Core Using Claims?

Verwenden Sie eine Anweisung im ASP.NET -Kern, um maßgeschneiderte Autorisierungsattribute

zu erreichen.

Hintergrund

ASP.NET CORE

bietet eine bequeme Möglichkeit, auf der Grundlage der Erklärung zu arbeiten. In der vorherigen Version können Sie jedoch AuthorizeAttribute umschreiben, um eine kundenspezifische Autorisierungslogik zu erreichen. Diese Methode existiert in bool AuthorizeCore(HttpContextBase httpContext) nicht mehr. AuthorizeAttribute

Die aktuelle Methode zur Verwendung von Strategie

ASP.NET CORE -Team empfiehlt die Verwendung von Strategien für die maßgeschneiderte Autorisierung. Das Folgende ist der Prozess:

    Strategie in :
  1. definieren

    Startup.cs

    <code class="language-csharp"> options.AddPolicy("YourPolicyName", policy => policy.RequireClaim(...));</code>
    add Attribut zu Ihrem Betrieb oder Controller hinzufügen:
  2. [Authorize]

    Verwenden der angepassten Autorisierungsattribute der Anweisung
    <code class="language-csharp"> [Authorize(Policy = "YourPolicyName")]
     public IActionResult Action(...)</code>
  3. Wenn die Strategie -basierte Methode nicht anwendbar ist, können Sie die
-Rinformace verwenden, um eine benutzerdefinierte

:

zu erstellen

IAuthorizationFilter wie man Beispiele verwendet: 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>
Durch die Implementierung der

-Methode in Ihrem Filter können Sie die Autorisierungslogik gemäß der Anweisung angeben.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie benutzerdefinierte Autorisierung in ASP.NET Core mit Ansprüchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn