Ich möchte eine rollenbasierte Autorisierung in meiner Webanwendung implementieren, die ich erstelle. Die Art, wie ich es mir vorgestellt, dies zu machen, ist 3 Tabellen in meiner DB erstellen wie folgt:Implementieren von rollenbasierter Autorisierung mit .NET MVC 5
1. Roles
2. UserRoles (many to many table)
3. Users
Nach dass jeder Benutzer eine Rolle zu ihm zugewiesen haben. Nun ... Meine Frage ist: Wie erlaube oder verbiete ich den Zugriff auf bestimmte Ansichten/Controller in meiner .NET MVC-Anwendung? Ich habe auf dieser gestolpert:
[Authorize(Roles = "HrAdmin, CanEnterPayroll")]
[HttpPost]
public ActionResult EnterPayroll(string id)
{
// . . . Enter some payroll . . .
}
Das Autorisieren Eigenschaft scheint die spezifischen Controller/Aktionen auf bestimmte Rollen zu beschränken ... Aber was ist, wenn ich die Benutzerrollen aus der Tabelle Userroles wie in meinem Fall lesen ?? Wie wird meine Anwendung wissen, welche Rolle der Benutzer auf dem System hat?
Kann mir jemand dabei helfen?
Haben Sie [ASP.NET-Identität] (https://www.asp.net/identity) ausgecheckt? – SeM
Sie müssen Ansprüche mit Ihren Rollen in Ihrer 'Login()' Methode hinzufügen. – SeM
Das oben genannte ist bereits in dem in MVC5 integrierten Identitätsframework implementiert. Sie müssen sich keine Gedanken darüber machen, diese Tabellen selbst zu erstellen, ändern Sie einfach die Standardverbindungszeichenfolge und zeigen Sie sie auf einen Server. – uk2k05