Weitere Informationen mit FormsAuthentication.SetAuthCookie speichern
Ich bin mit aspx und c# für eine Einstellung ein Authentifizierungs-cookie nach einer Anmeldung.
FormsAuthentication.SetAuthCookie(UserName, True)
Ich möchte mehr Informationen speichern in der gleichen cookie. Kann ich die Werte hinzufügen, um das authentifizierungscookie oder muss ich mit einer zweiten http-cookie?
Grundsätzlich bin ich auf der Suche nach Weg, der zum speichern des Benutzers Id
so dass ich möglicherweise in der Lage, den Zugriff auf die Datenbank unter Verwendung der Benutzer-Tabelle-Zeile-Taste
Dank,
Eden
InformationsquelleAutor der Frage Eden | 2009-07-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie Benutzer hinzufügen von Daten zu der FormsAuthenticationTicket, erstellen Sie dann die cookie selbst.
Gibt es ein Beispiel in der in der MSDN-Dokumentation für FormsAuthenticationTicket.
BEARBEITEN
Beachten Sie, dass bei der Erstellung der Fahrkarte, müssen Sie den timeout einstellen, welche im Allgemeinen werden Sie wollen, um das gleiche wie den konfigurierten Wert in web.config. Leider ist in der Framework 3.5 oder früher, die
FormsAuthentication
Klasse nicht aussetzen dieser timeout öffentlich. Um das Problem zu umgehen, verwenden Sie eine der beschriebenen Techniken in der Antwort zu diese verbinden feedback-Element.UPDATE
Ja, es ist schade, Microsoft hat verworfen historischen Connect-Elemente. Wenn ich mich Recht erinnere, die beiden Techniken wurden vorgeschlagen:
Verwenden WebConfigurationManager, Lesen Sie den entsprechenden Abschnitt "Konfiguration" und Holen Sie den timeout-Wert.
Erstellen ein cookie mit
FormsAuthentication.GetAuthCookie
, entschlüsseln Sie mitFormsAuthentication.Decrypt
und untersuchen Sie den generiertenFormsAuthenticationTicket
.Oder ein upgrade auf .NET 4.x, wo es eine
FormsAuthentication.Timeout
Eigenschaft.Sehen diese Frage für mehr info
InformationsquelleAutor der Antwort Joe
Können Sie setzen, was Sie wollen, in das auth-cookie so lange, wie es für Sie nützlich ist. Das sagte, wenn Sie setzen sind sensible Informationen, die Sie sollten, zumindest, verschlüsseln Sie es, aber ich würde empfehlen, gegen putting vertrauliche Informationen. Sie können etwas tun:
Dann, wenn Sie benötigen den Benutzernamen oder die Benutzer-id, es ist da. Laden Sie einfach die Cookies und analysieren die Werte, die Sie brauchen.
Wieder, würd ich abraten, dies zu tun, vor allem, wie ich Sie oben dargestellt. Das heißt, es ist möglich. Sollten Sie accessor-Methoden zu ziehen Sie die Daten wieder aus:
InformationsquelleAutor der Antwort andymeadows
Ja, es ist smart-to benutzen Sie "|" mehr info. Wenn Microsoft eine andere überladene Methode
Dann wird unser Leben viel einfacher sein wird, unseren code wird sicherer sein.
InformationsquelleAutor der Antwort Ryan Liu
Passieren, dass die Benutzer-ID als Benutzername param.
Wie sind Sie mit der Sicherung Ihres auth-tickets?
InformationsquelleAutor der Antwort user134706
Können Sie den timeout einstellen, basierend auf dem Wert in
web.config
mitFormsAuthentication.Timeout.TotalMinutes
.InformationsquelleAutor der Antwort Luke M. Muszkiewicz