2009-09-16 5 views
5

Ich weiß, dass dies klingt wie etwas, das überall erklärt wird .. aber ich habe beobachtet viele asp.net/learn Videos Artikel lesen - und dennoch fehlt etwas, das erklärt, wie diese "Mitgliedschaft" zusammenhängt.ASP.NET Benutzer/Mitgliedschaft/MitgliedschaftBenutzer/Sicherheit/Prinzipal/Profil ... HELP

Auf der einen Seite gibt es diese integrierte. NET-Benutzerverwaltung, die Sie Rollen, Benutzer usw. erstellen können. Dann auf der anderen Seite, diesen Benutzer zu bekommen, speichern (in der Sitzung usw.) scheint eine seltsame Aufgabe , von dem, was ich gelesen habe, mit dem Erstellen eigener "Principal" -Objekte etc.

Wenn es jemanden da draußen gibt, der das Verständnis und die Zeit hat, könnten sie uns (mir) eine kurze Erklärung geben, was mit allem ist Dies. Vielleicht, wie es zusammen hängt ... Wie benutze ich eine Zeichenfolge Benutzernamen/Passwort, um zu sehen, ob ein Konto existiert, loggen Sie sich ein, prüfen Sie, ob sie in der richtigen Rolle für eine Aktion sind .. oder sogar alle Rollen, die der Benutzer hat ist ein Teil von?

Ich weiß, dass diese Frage bei Leuten, die die .net-Benutzer-Sachen schon gut verstehen, nicht gut ankommt, aber bitte antworte nur, wenn du helfen kannst.

Vielen Dank im Voraus. peteski

Antwort

6

Sie müssen Ihr eigenes Hauptobjekt überhaupt nicht erstellen. Alles, was Sie tun können, ist, einen der sofort verwendbaren MembershipProvider (zB SQLMembershipProvider) zu verwenden, um Ihren Benutzer zu verwalten und einen der RoleProvider (zB SQLRoleProvider) zu verwenden, um die Autorisierung für die Benutzer festzulegen, falls erforderlich.

Um den Benutzer zu erhalten, müssen Sie ihn nicht in der Sitzung speichern. Verwenden Sie einfach Page.User, um die aktuellen Benutzergrundinformationen zu erhalten (Name, IsAuthenticated).

Um zu überprüfen, ob der Benutzer, wenn die Anmeldeinformationen Benutzer korrekt sind, Sie

Membership.ValidateUser(username,password). 

Um Anmeldung verwenden können, empfehle ich Ihnen die ASP.NET-Login-Steuerelement zur Verfügung gestellt verwenden, aber Sie können Sie eigene Login mit ein wenig Code mehr Arbeit. Wenn Sie Formularauthentifizierung verwenden, ist es so etwas wie:

if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text)) 
    FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked); 
else 
    Msg.Text = "Login failed. Please check your user name and password and try again."; 

PS: Das Beispiel von MSDN

kommt schließlich zu überprüfen, ob der Benutzer eine Aktion ausführen können, verwenden Sie

RoleProvider.IsUserInRole(username,rolename) 

Sie steuern kann auch Zugriff auf eine Ressource (eine Seite, eine Datei, einen Ordner, etc.) durch die Konfigurationsberechtigung in Ihrem web.config ab:

< authorization> < Benutzer verweigern = "?" /> < erlauben Rollen = "Administratoren" /> < Benutzer verweigern = "*" /> </authorization>

Hoffnung diese Hilfe und fiel um weitere Informationen zu fragen, ob es nicht klar ist,

bearbeiten

Ihren Kommentar zu beantworten, ist hier, wie es funktioniert:

Seite.Der Benutzer verwendet ein Authentifizierungs-Cookie, um den aktuell angemeldeten Benutzer zu identifizieren. Dieser Cookie wird automatisch in FormsAuthentication.RedirectFromLoginPage gesetzt. Wenn Sie jedoch nur den aktuellen Benutzer ohne Umleitung festlegen möchten, können Sie FormsAuthentication.SetAuthCookie (userName, persistentCookie) manuell aufrufen, wobei persistentCookie ein boolescher Wert ist, der angibt, ob dieser Cookie persistent sein soll oder nicht im Browser.

Hoffe es die ursprüngliche Antwort zu klären

+0

Hallo Martin, das hilft ein wenig - praktisch. Was passiert, wenn ich einen Benutzer nicht von einer Seite zu einer anderen umleiten möchte? Mit welcher Methode wird der Page.User eingestellt (d. H. Angemeldet). Führt RedirectFromLoginPage das aus? (die Intelligenz macht das nicht klar). Ich war auch auf der Suche nach einer Erklärung dessen, was jeder Teil der Mitgliedschaft tut (um mir zu helfen, es zu verstehen und als Referenz). Aber vielen Dank für Ihre Antwort! Sehr geschätzt! – peteski

+0

Ich habe jetzt entdeckt, dass mit der FormsAuthentication.SetAuthCookie(); Ich kann 'den Benutzer anmelden' .. Ich umleiten dann zurück auf die gleiche Seite, wo ich Logik hinzufügen kann, um verschiedene Rollen usw. zu behandeln – peteski