Wie man einen Benutzernamen von asp:login in einer session speichern?
Ich bin mit einem einfachen asp:login-Formular für Benutzer-Authentifizierung auf meiner Website. Ich habe es als basic, als ich kann, und mein code sieht wie folgt aus:
<asp:Login ID="LoginForm" runat="server"
DestinationPageUrl="~/LoggedIn/TaskPanel.aspx" >
</asp:Login>
Entsprechenden Tabellen in meiner SQL-Server-Datenbank und das login funktioniert wie ein Charme 🙂
Einmal angemeldet, kann ich abrufen möchten einige user-Daten und speichern es in der Sitzung für die spätere Verwendung. Um dies zu tun, ich beabsichtige auf übergeben den Benutzernamen über eine Gespeicherte Prozedur in meiner Datenbank.
Ich habe Folgendes versucht, aber wenn ich jetzt versuche, sich zu authentifizieren, passiert nichts & die Seite aktualisiert.
<asp:Login ID="LoginForm" runat="server"
DestinationPageUrl="~/LoggedIn/TaskPanel.aspx"
OnAuthenticate="storeUserDetails" >
</asp:Login>
C#:
protected void storeUserDetails(object sender, EventArgs e)
{
Session["accountCustUsername"] = LoginForm.UserName;
...
...
}
Habe ich auch versucht, indem Sie eine Antwort.Redirect in dieser Methode nur um zu sehen, ob etwas passiert, aber nichts tut.
Bin ich wohl zu verwenden, die login-Vorlage, um eine ID für den Benutzernamen textbox? Und wie wäre das genau gemacht?
InformationsquelleAutor Patrick Keane | 2013-01-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Membership-Api-Funktionen, um die aktuell angemeldeten Benutzer.
Gehören diesem Namensraum
Zugriff auf den aktuellen Benutzer
ODER
InformationsquelleAutor codingbiz
Wenn Sie die Forms-Authentifizierung ordnungsgemäß konfiguriert haben, können Sie rufen Sie
User.Identity.Name
nachdem Sie sich anmelden.Aber Sie wirklich brauchen nicht zu tun, da dieser Wert wird immer zur Verfügung, um Sie, solange Sie angemeldet sind.
Können Sie diesen code im Page_Load der taskpanel eingeführt.aspx-Seite (da ich davon ausgehe das die Seite kommen Sie an die nach dem login)
Got it: System.Web.HttpContext.Aktuelle.Benutzer.Identität.Namen ! Warum dieses Werk und nicht Ihr Vorschlag? Vielen Dank für Ihre Hilfe!
ich dachte, Sie würden versuchen, es auf eine web-Seite code-hinter, so dass ich nicht glaube, Sie müssten verwenden Sie den vollständig qualifizierten Namen.
Das ist genau das, wo Im Sie den code! in der Page_Load
Sie haben wahrscheinlich nicht die using-Anweisung für System.Web. Im Rahmen einer code-behind-Datei, die Sie nicht brauchen, um verwenden Sie den vollqualifizierten Namen, wenn der richtige Namensraum importiert wird.
InformationsquelleAutor scartag