Ich muss ziemlich einfache Auth Mechanizm mit im Wesentlichen 2 Rollen implementieren: Owners
und Users
. Und ich denke, dass Enum dafür ausreichend sein wird. App selbst ist SPA mit Webapi über Asp.net Core implementiert. Ich habe Artikel gesehen - wie man es mit EF Identity implementiert, aber ihre Modelle sehen viel komplexer aus, als ich wirklich brauche und EF orientiert sich an SQL db und ich benutze Mongo. Also sieht mein Benutzer so aus:
Welche Schnittstellen muss ich implementieren und zu DI hinzufügen, um sie verwenden zu können?
[Authorize]
und [Authorize(Roles="Users")]
-Attribut und sie funktionierten korrekt basierend auf Token, die ich im Header sende?
Lass mich ein wenig @ Adems Antwort klären. Sie müssen benutzerdefinierte Middleware auf spezifische Weise implementieren. Es gibt 3 abstrakte Klassen, die implementiert werden müssen, um dies zu implementieren (die Antwort ist korrekt für asp.net core rc2
btw):
Microsoft.AspNetCore.Builder.AuthenticationOptions
%Code%
Microsoft.AspNetCore.Authentication.AuthenticationMiddleware<TOptions>
und fügen Sie diese Middleware dann Ihrer Startup-Klasse hinzu.
Codebeispiel:
%Vor%S. Der Code dient nur zur Veranschaulichung der Idee. Sie müssen natürlich Ihren eigenen Handler implementieren.
Sie können benutzerdefiniertes middleware
verwenden, um Benutzer zu authentifizieren und claims
(Name, Rollen, etc.) zu setzen.
Ich werde versuchen, eine einfache middleware
zu schreiben:
Erstellen Sie zuerst ein middlware
class
:
Dann verwende middleware
in Startup.cs
wie folgt:
Verwenden Sie schließlich Authorize
Attribut:
Tags und Links c# authentication authorization asp.net-core asp.net-core-mvc