Ich habe eine Anwendung mit Datenbank geerbt. Die Datenbank verfügt über folgende Tabellen zur Authentifizierung und Autorisierung.Implementieren rollenbasierte Autorisierung in MVC und Web-API mit benutzerdefinierten Tabelle
Benutzertabelle
Benutzername
Passwort
UserTypeId
Usertype Tabelle
UserTypeId
UserTypeDesc
Die Tabelle Benutzertyp speichert die Rollen für den Benutzer, z. Admin, Editor usw.
Wenn ich will Genehmigung implementieren, wie unten
[Authorize(Roles="Admin, Editor")]
public IHttpActionResult GetOrders()
{
//Code here
}
Wo und was soll ich Code, so dass die Rollen auf das Autorisieren Attribut verfügbar sind?
bearbeiten
Ich habe bereits eine Datenbank. Daher kann ich die AspNetUserRoles- oder AspNetRoles-Tabellen nicht verwenden. Ich muss die Rollen mithilfe meiner benutzerdefinierten Tabellen festlegen.
EDIT2
Wie @Nkosi gefragt, hier ist der Code-Schnipsel, wie die Authentifizierung implementiert. Die eigentliche Implementierung ruft die Business-Schicht-Dienst und führt Verschlüsselung und andere Sachen, aber ich habe das Snippet vereinfacht
public HttpResponseMessage Authenticate(User user)
{
var isValid = myRepository.Exists(a => a.UserName == user.UserName && a.Password == user.Password);
if(isValid)
{
FormsAuthentication.SetAuthCookie(user.UserName,false);
}
}
Diese Methode aus der Login-Seite aufgerufen wird, wo Benutzer die Benutzernamen und Passwort
Es ist nicht klar, was genau Sie fragen. –
Ich habe mehr Text hinzugefügt. Ich hoffe, es ist jetzt klar – devanalyst
Rollen unterstützen Attributautorisierung. Fragen Sie: Wie fügt man der Tabelle Rollen hinzu? Es ist noch unklar. Auch im Attribut müssen Sie Rollen eingeben. –