3 Stimmen

SQL Database Powered C# & ASP.Net Rollenbasierte Authentifizierungssteuerung

Ich möchte ein ASP.net- und C#-Authentifizierungs-/Anmeldesteuerelement, das auf eine SQL-Server-Datenbank mit zwei Tabellen verweist: Benutzer und Rollen. Wenn die Authentifizierung erfolgreich ist, möchte ich, dass der Benutzer zu einer bestimmten Seite auf der Website umgeleitet wird, die durch seine in der Datenbank gespeicherte Rolle bestimmt wird.

Zum Beispiel kann ein Benutzer mit einer Rolle von "Systemverwalter" auf die geschützte Homepage innerhalb des Systemadministrationsordners auf der Website geleitet werden, auf der er als Rolle von "Systembenutzer" zu ihrer jeweiligen Homepage innerhalb des geschützten Systembenutzerordners umgeleitet werden würden.

Es ist mir gelungen, etwas in der MSDN-Bibliothek zu finden, aber das leitet alle erfolgreichen Anmeldungen trotzdem auf "default.aspx" um.

Gibt es eine Möglichkeit,:

  1. Gibt es eine Möglichkeit, dies an meine spezifischen Anforderungen anzupassen?
  2. Gibt es eine Ressource, die ich noch nicht gefunden habe, die einige Hinweise darauf geben könnte, wie man dies umsetzen kann?

1voto

Wyatt Barnett Punkte 15500

Mit den eingebauten SqlMembershipProvider und SqlRoleProvider, die in ASP.NET seit Version 2.0 vorhanden sind, können Sie dies leicht erreichen.

Das eigentliche Problem ist die Bestimmung der "Rolle", die ein Benutzer einnehmen sollte, wenn er mehrere Rollen hat.

0voto

Loktar Punkte 33558

Sie könnten immer eine Proxy-Seite für die erfolgreiche Anmeldung einrichten, die nach einer erfolgreichen Anmeldung die Rolle erhält und auf die folgende Seite weiterleitet.

Code hinter der erfolgreichen default.aspx-Anmeldung.

if(Context.User.IsInRole("System Admin")){
    //redirect to page.
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X