Cookie setzen Problem ASP.NET-VB

DanyCode

Grünschnabel
Hallo,
ich habe mehrere Anwendungen für die man sich authentifizieren muss.
Alle Anwendungen MÜSSEN über nur EIN Login startbar sein.
Deswegen nutze ich, um Userdaten applikationsübergreifend zugänglich machen zu können, Cookies.

Im Grunde kein Problem. Beim Login wird ein Cookie geschrieben, Lebenszeit des Cookies beträgt 10 Minuten und wird bei jedem durchlaufen der global.asax im "Application_BeginRequest"-Abschnitt überprüft.
Wenn Cookie noch am leben, verlängere Lebenszeit um 10 Minuten
Das tue ich wie folgt
Code:
meinCookie.Expires = DateTime.Now.AddSeconds(600)
Somit müsste mein Cookie nach 10 Minuteninaktivität ablaufen.
Anschließend aktualisiere ich das Cookie
Code:
Response.Cookies.Set(meinCookie)

Ich hoffe, dass die Syntax und mein vorgehen bis hierher korrekt ist.

Auf den meisten PCs funktioniert das alles wunderbar.
Auf einigen Clients allerdings wird dieses Cookie nicht geschrieben OBWOHL der Client Cookies akzeptiert. Auch wenn ich explizit diese meine Webseite in der Cookiebehandlung des Browsers erlaube Cookies abzulegen funktioniert es auf diesen Clients einfach nicht.
Das seltsame ist, dass es sich teilweise um PCs handelt, die auch in der Entwicklungsumgebung laufen und dort beim Coding und Debuggen, auf dem Localhost, alles funktioniert. Sobald ein Release erzeugt wird und das ganze Zeugs auf unseren Echtserver gebimst wird, treten bei einigen Entwicklungsrechnern diese Probleme auf... und bei einigen "normalen" Clients auch. Es wird ausschließlich der InternetExplorer benutzt. In der 5er wie auch in der 6er Version. Die Probleme tauchen unter NT4.0 wie auch unter XP auf.

Hinzu kommt, dass bei einigen Rechnern das Cookie wohl geschrieben wird, aber die Lebenszeit maximal 1-3 Minuten beträgt und diese auch nicht verlängert wird. Also nach ca. 4 Minuten wird man "rausgeworfen" obwohl man fleißig geklickt hat.

Die Clients auf den die Probleme auftreten, akzeptieren aber durchaus Cookies anderer Websites problemlos.

Habt ihre eine Idee?

Danke schon im voraus!
 
Erledigt, hab das Problem gelöst!

Es liegt daran, dass ich dem Cookie eine Lebensdauer von DateTime.Now+10 Minuten gebe. Der DateTime.Now Wert ist aber die Serverzeit und eine Cookie lebenszeit lässt sich nicht auslesen! Ausschließlich der Browser ist für die Cookiebehandlung verantwortlich.
Ist also auf einem Client die Zeit 10 Minuten weiter als die auf dem Server, tritt dieses Problem auf, gleiche ich die Zeit ab, funktioniert alles!
Happy New Year ;-)
DanyCode
 
Zurück