Ich habe diesen Code, wenn Benutzer anmelden, die Zeichenfolge sUserData ist ordnungsgemäß festgelegt.Formularauthentifizierung, die Benutzer nicht ordnungsgemäß überprüft
Dim sUserData As String = HttpContext.Current.Request.Cookies("UserID").Value & "|" & HttpContext.Current.Request.Cookies("UserName").Value & "|" & HttpContext.Current.Request.Cookies("UserEmail").Value
Dim fat As FormsAuthenticationTicket = New FormsAuthenticationTicket(1, _
HttpContext.Current.Session("UserID"), DateTime.Now, _
DateTime.Now.AddDays(6), True, sUserData, _
FormsAuthentication.FormsCookiePath)
HttpContext.Current.Response.Cookies.Add(New HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(fat)))
Dann habe ich Code, wo ich überprüfen, ob der Benutzer, wenn in einem freigegebenen (statisch) Verfahren in einer öffentlichen Klasse wie diese Anmeldung:
If HttpContext.Current.User.Identity.IsAuthenticated Then
EndIf
Und das funktioniert gut, aber wenn ich setzt die gleiche Linie in Page_Load anstelle einer gemeinsamen Methode einer Klasse nie in diese If-Anweisung geht
If HttpContext.Current.User.Identity.IsAuthenticated Then
EndIf
Warum ist das passiert, und ist es eine Möglichkeit, diese neu zu schreiben in der Code- zu arbeiten hinter Page_L oad, anstatt es in eine Klasse zu legen, wird die Klasse in einer Kopfzeile verwendet, um den Zugriff auf bestimmte Seiten zu ermöglichen - damit das funktioniert. Aber ich brauche eine andere Art der Authentifizierung des Benutzers auf der Seite "Standard", um die Labels und Schaltflächen basierend auf dem Wetter, in dem der Benutzer angemeldet ist, zu ändern, und dies kann nicht in einer Klasse erfolgen.
Gibt es einen bestimmten Grund, warum Sie dieses Cookie manuell erstellen, anstatt 'FormsAuthentication.SetAuthCookie()' zu verwenden? Ihr Code funktioniert möglicherweise, aber .NET erledigt das für Sie. (nur eine Beobachtung). –
ja, es gibt - es muss so sein, es gibt bereits 10k plus Benutzer, und meine Aufgabe ist es nicht, alles zu ändern, nur meinen Code arbeiten mit bestehenden db –
Versuchen Sie nicht, die Flagge in der überprüfen SAME Anfrage Sie erstellen den Cookie? Dies wird nicht funktionieren, da der Kontext ausgehend von einer Anfrage neben der, die Sie gesetzt haben, gesetzt wird. –