ASP.NET Identität und Ansprüche
Ich versuche mich zu bewegen Weg von WebForms und lernen, MVC, insbesondere mit der neuen ASP.NET Identity-Modell. Aber ich kann nicht scheinen zu finden, die keine formale Dokumentation von Microsoft, das veranschaulicht, wie erstellen Sie eine Ansprüche-Objekt, und speichern Sie in einer Datenbank für einen authentifizierten Benutzer.
Meiner Seite, muss Folgendes tun:
- Authentifizierung eine Benutzer - TICK
- Anspruch, und speichern der Benutzer-Informationen, so dass ich es verwenden können, während der gesamten Sitzung - KEINE ZECKE
- Ziehen Sie den Benutzern Rollen aus der neuen ASP.NET der Rollen-Tabelle - NICHT TICK
Kann jemand Einblick geben, wie Sie dieses erreichen?
InformationsquelleAutor der Frage CSharpNewBee | 2014-02-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ehrlich, ich bin immer noch das erlernen der Seile mit Identität, zu mir selbst. Zugegeben, die Microsoft-Dokumentation zur Verfügung, die könnte besser sein, aber ich habe nie gefunden, alle Ihrer Dokumentation, all das hilfreich. Das beste Zeug kommt immer aus der community, und leider, Identität ist noch so neu, dass die community Zeit hat, um wirklich Fleisch das noch.
Gesagt, hier ist, was ich weiß, mit dem Verständnis, dass es gibt vielleicht bessere Möglichkeiten, ich bin einfach nicht bewusst, noch nicht.
Ansprüche
Ihre
UserManager
hat drei Methoden von Bedeutung:GetClaimsAsync
AddClaimAsync
undRemoveClaimAsync
.Um alle Ansprüche, die für einen Benutzer:
Können Sie die aktuelle Benutzer-id mit:
Sobald Sie die Ansprüche, die ziehen einen speziellen:
Wo "SomeClaimType" ist der name der Forderung, als Sie Hinzugefügt wurde. In einigen Szenarien könnte dies einen vollständig qualifizierten URN, oder es kann nur eine einfache Zeichenfolge. Wenn es nicht etwas, was Sie persönlich Hinzugefügt, das beste, was zu tun ist, nur untersuchen Sie die
claims
variable, die während einer debug-Sitzung, um zu sehen, was Sie eigentlich da haben.Auch, weil die Liste der Forderungen ist ein queryable, können Sie ziemlich viel tun, was LINQ-Abfrage, die Sie wollen auf Sie,
Where
Count
usw.Hinzufügen, um eine neue Forderung:
Und zu entfernen, ein Anspruch:
Rollen
Rollen funktionieren auf ähnliche Weise. Um alle Rollen für einen Benutzer:
Um zu sehen, ob ein Benutzer in einer bestimmten Rolle:
Hinzufügen eines Benutzers zu einer bestimmten Rolle:
Und zu entfernen:
Hinzufügen der Rollen in Erster Linie ist es ein bisschen anders; Sie haben eine Instanz zu schaffen
RoleStore
.Dann, können Sie verwenden, um verwalten Sie alle Rollen. Zum Beispiel, erstellen Sie eine neue Rolle:
Entfernen:
Immer alle Rollen, ist nicht möglich, mit der Identität-spezifische API zu dieser Zeit, aber man kann immer wieder zurückgehen, um Abfragen mit Entity Framework direkt:
InformationsquelleAutor der Antwort Chris Pratt
Bezüglich Asp.Net Identität, würde ich dringend empfehlen Brock Allens Implementierung, genannt "Identity Reboot". Identität Reboot im Grunde ist ein Satz von Erweiterungen für das ASP.NET Identität. Es wurde inspiriert durch Frustrationen, die mit der ASP.NET Identity-Umsetzung.
Lesen Sie einen einführenden Artikel hier. Können Sie download source code und Beispiele von github hier.
Können Sie die Installation über nuget:
InformationsquelleAutor der Antwort Panayiotis Hiripis