Ho questo codice quando accedere Utente, quella stringa sUserData è impostata correttamente.Autenticazione moduli non valida correttamente Utente
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)))
allora ho codice in cui posso controllare se l'utente se ha firmato in in un metodo condiviso (statico) in una classe pubblica come questo:
If HttpContext.Current.User.Identity.IsAuthenticated Then
EndIf
E questo funziona bene, ma se io mettere la stessa linea in Page_Load invece di un metodo condiviso di una classe non potrà mai entrare in questa informativa Se
If HttpContext.Current.User.Identity.IsAuthenticated Then
EndIf
Perché succede questo, e c'è qualche modo per ri-scrivere questo a lavorare in code- dietro Page_L oad invece di doverlo inserire in una classe, la classe viene utilizzata in un'intestazione per consentire l'accesso a determinate pagine, quindi funziona correttamente. Ma ho bisogno di un altro modo di autenticare l'utente nella pagina Default per cambiare etichette e pulsanti in base al tempo in cui l'utente è connesso o meno, e questo non può essere fatto in una classe.
C'è qualche ragione particolare per cui stai creando manualmente quel cookie invece di usare 'FormsAuthentication.SetAuthCookie()' Il tuo codice potrebbe funzionare, ma .NET lo farà per te. (solo un'osservazione). –
sì, c'è - deve essere così, ci sono già 10k più utenti, e il mio lavoro non è quello di cambiarlo basta far funzionare il mio codice con il db esistente –
Non stai provando a controllare la bandiera nel Richiesta SAME tu crei il cookie? Ciò non funzionerà, poiché il contesto verrà impostato a partire da una richiesta successiva a quella impostata. –