webForumDet fria alternativet

isPersistent problem

4 svar · 400 visningar · startad av Arne

ArneMedlem sedan maj 2000267 inlägg
#1

Jag har en FormsAuthentication vilket jag kollar mot en databas om man har behörighet.
Om allt är OK sätter jag en FormsAuthenticationTicket:

Dim isPersistent As Boolean = Persist.Checked
Dim ticket As New FormsAuthenticationTicket( _
1, _
Namn, _
DateTime.Now, _
DateTime.Now.AddYears(1), _
isPersistent, _
userData, _
FormsAuthentication.FormsCookiePath)

Dim encTicket As String = FormsAuthentication.Encrypt(ticket)
Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket))
Response.Redirect(FormsAuthentication.GetRedirectUrl(namn,isPersistent))
'blir ett mellanslag i isPersistent ovan när jag sparar här ser jag , ska inte vara så......

i Web.Config

<authentication mode="Forms">
	<forms name="medlem" loginUrl="medlemsidor/login/default.aspx" defaultUrl="medlemsidor/minsida/default.aspx" protection="All"/>
</authentication>

När jag loggar in bockar jag i isPersistent.

Kollar på sidan jag kommer till att altt stämmer (ticket.IsPersistent.ToString() är True)
ticket.Expiration.ToString() går ut 2009...

Men ändå när jag stänger browsern och öppnar fönstret igen så är jag utloggad.

Vad gör jag för fel?

ZaimanMedlem sedan dec. 20014 239 inlägg
#2

i Web.config behövs nog domänen och timeoutvärdet.

<forms loginUrl="Login.aspx" protection="Validation" timeout="1209600" domain="mindomän.se"/>
ArneMedlem sedan maj 2000267 inlägg
#3

fungerade icke

Provade att lägga till/ändra protection="Validation" timeout="1209600" domain="mindomän.se"/

Men samma problem...........

CatZMedlem sedan jan. 20022 440 inlägg
#4

jag hoppas att du inte la till domain="mindomän.se" utan ditt fullständiga domännamn...

ArneMedlem sedan maj 2000267 inlägg
#5

domain

har provat med fullständigt domännamn, både med www och utan........

Har nu skrivit om koden till:

FormsAuthentication.Initialize()

Dim ticket As FormsAuthenticationTicket = New FormsAuthenticationTicket( _
1, _
namn, _
DateTime.Now(), _
DateTime.Now.AddYears(1), _
Persist.Checked, _
userData, _
FormsAuthentication.FormsCookiePath)

Dim encTicket As String = FormsAuthentication.Encrypt(ticket)

Dim cookie As HttpCookie
cookie = New HttpCookie(FormsAuthentication.FormsCookieName(), encTicket)

If (Persist.Checked) Then cookie.Expires = ticket.Expiration
cookie.Path = FormsAuthentication.FormsCookiePath()
Response.Cookies.Add(cookie)

Dim strRedirect As String
strRedirect = Request("ReturnURL")

If strRedirect <> "" Then
	Response.Redirect(strRedirect, True)
Else
	strRedirect = "../minsida/default.aspx"
	Response.Redirect(strRedirect, True)
End If

Och nu verkar det fungera alldeles ypperligt, men frågan står kvar fortfarande vad är fel med den första koden plockad från MSDN?

Vad är egentligen skilnaden på koderna, tycker dom ser lika ut?

138 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)