Hej jag är relativt ny inom asp.net programmeringen. Jag kör med sessioncookies för att kontrollera inloggningen till sidan. Det funkar utmärkt när jag kör på min adress ????.mine.nu eller min interna adress 192.168.0.100. Jag har sedan en tid tillbaka ett eget domännamn ????.se när jag kör på denna adress tappar IE sessionen som jag skapat. vet någon varför? Min kod ser ut som följer: Om servern tappar sessioner är det troligen där felet ligger. Kan vara nåt i global.asax som överstyr detta. Kan även vara att klienten inte tillåter cookies, eller att klienten kör norton antivirus och har scriptblocking på osv. Men troligast är att det är ett cookie-problem. Du kan inte heller hålla en session mellan två domäner om du kör redirect. Magnus:Sessionscookien tappas när jag använder min domän adress!?
Lite mer info:
????.se adressen blir pekad till adressen ????.mine.nu eftersom jag ej har en dynamisk adress.
(Sessionen tappas när sidan byts till annan valfri sida)
Detta sker inte när jag kör från samma dator som IIS:n ligger på.
- Windows XP Pro SP 2
- Visual Studio 2003
- IIS 5.1Sv:Sessionscookien tappas när jag använder min domän adress!?
_______________________________________________________________________________
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Session("login") <> "ja" Then
DivInloggad.Visible = False
Else
LabelInlogg.Text() = Session("fornamn") & " " & Session("efternamn")
Dim datum As String = Session("senastinloggad")
LabelSenastHar.Text() = datum.Remove(10, 9)
LabelAntalGGR.Text = Session("LabelAntalGGR")
DivInloggad.Visible = True
End If
End Sub
Private Sub Login(ByVal Sender As Object, ByVal E As EventArgs)
Session("login") = "ja"
Session("pid") = MyRecordSet("pid").Value()
Session("fornamn") = MyRecordSet("fornamn").Value()
Session("efternamn") = MyRecordSet("efternamn").Value()
Session("senastinloggad") = MyRecordSet("senastinloggad").Value()
End Sub
___________________________________________________________________________
All min kod ligger kodebehind menar du att jag bara skall sätta in den där eller skall den läggas in i Global.asax.vb?
"Session.Expires = Date.Today.ToString" funkar ju inte med Sessioner, eller?
I IIS:en har jag satt att Session timeouten skall avslutas efter 40 minuter.Sv: Sessionscookien tappas när jag använder min domän adress!?
För att kunna hålla en session mellan klient och server läggs en temporär cookies på klienten som håller reda på sessionid. När man sedan lämnar siten, stänger webbläsaren så dör sessionen.Sv: Sessionscookien tappas när jag använder min domän adress!?
För att själv slippa hantera om en användare är inloggad eller inte så kan du använda dig av FormsAuthentication, öppna MSDN Lib (dokumentationen) och sök efter FormsAuthentication så hittar du mkt inom om den.
Ditt problem med session har nog lite med att du skapar din session under ett domän-namn, sedan när din site byter till ett annat domän så kommer inte IE hämta den cookie som är skapad från din tidigare domän-namn utan tar den cookie (om en finns) för det domän du är på. Detta är pga av säkerhetsskäl.