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
Freigeben: 2025-02-01 18:16:10
Original
336 Leute haben es durchsucht

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

     options.AddPolicy("YourPolicyName", policy => policy.RequireClaim(...));
    Nach dem Login kopieren
    add <性> Attribut zu Ihrem Betrieb oder Controller hinzufügen:
  2. [Authorize]

    Verwenden der angepassten Autorisierungsattribute der Anweisung
     [Authorize(Policy = "YourPolicyName")]
     public IActionResult Action(...)
    Nach dem Login kopieren
  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

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();
        }
    }
}
Nach dem Login kopieren
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!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage