Mysql
 sql >> Datenbank >  >> RDS >> Mysql

asp.net Store-Rollen in der Sitzung Roles.AddUsertoRole (nicht das, wonach ich suche?)

Ist Roles.AddUserToRole wirklich das, wonach ich suche, um meine Anforderungen zu erfüllen? Ich denke, ich muss die Benutzerrollen in der Sitzung speichern, nicht wahr?

NEIN! Das Hinzufügen von Benutzern zu Rollen bedeutet, dass der Anbieter den Benutzer mit der Rolle verknüpft. Da Sie den Benutzer bereits verlinkt haben, ist dies eine wertlose Richtung.

speichern Sie diese Rollen irgendwie, damit ich Steuerelemente und Links basierend auf ihrer Rollenmitgliedschaft anzeigen kann

Warum müssen Sie das tun? Auf Seitenebene können Sie die ASP.NET-Sicherheit mit Einschränkungen einrichten, sodass Sie Seiten automatisch aus der Ansicht des Benutzers ausschließen können, wenn sie nicht die richtige(n) Rolle(n) haben. In Bezug auf Abschnitte/Steuerelemente/usw. können Sie überprüfen, ob ein Benutzer in einer Rolle IST, und dann bestimmen, ob diese angezeigt werden soll oder nicht. Wenn Sie Abschnitte verwenden, kann vieles davon deklarativ statt programmgesteuert erfolgen.

Die einzige Einschränkung ist, was Ihr Mitgliedschaftsanbieter unterstützt. Die „out of the box“-Anbieter (Access und SQL Server) unterstützen Sicherheitsverzierungen und deklarative Syntax für Ausschlüsse von Abschnitten einer Seite usw. Wenn der MySQL-Anbieter alle Methoden vollständig implementiert, sollten Sie ihn auch verwenden können . Wenn Sie einen benutzerdefinierten Anbieter erstellen, müssen SIE bestimmte Teile implementieren, damit die Dinge funktionieren.

Die kurze Geschichte ist, sobald Sie sich einen Mitgliedschaftsbenutzer schnappen (die Person authentifizieren), haben Sie Zugriff darauf, ob die Person in der Rolle ist oder nicht. Dies ist alles Teil der Standardimplementierung eines Mitgliedschaftsanbieters in .NET. Solange der Anbieter, den Sie für MySQL verwenden, dieselben Methoden abdeckt, können Sie eine schnelle Google-Suche durchführen und unzählige Websites finden, die zeigen, wie Bits basierend auf Rollen angezeigt/ausgeblendet werden.