2010-03-16 2 views
1

Mon site se compose d'une seule page ASPX et de quelques ressources telles que des images, des js et des feuilles de style. Lorsque la page est ouverte, elle génère Asp.Net_SessionId qui est utilisé lors de l'obtention d'autres ressources, mais la ressource réinitialise ASP.NET_SessionId avec la réponse. Que peut-on faire à ce sujet?Le cookie de session est réinitialisé par ASP.NET

Default.aspx: 
Request: 
Cookie ASP.NET_SessionId= 

Response 
Set-Cookie ASP.NET_SessionId=pf31rzumimjurdmdhc1qgq45; expires=Tue, 16-Mar-2010 14:21:43 GMT; path=/; HttpOnly 

Default.css: 
Request: 
Cookie ASP.NET_SessionId=pf31rzumimjurdmdhc1qgq45 

Response: 
Set-Cookie ASP.NET_SessionId=; expires=Tue, 16-Mar-2010 14:21:44 GMT; path=/ 

Cela me rend fou. Cela n'arrive que lorsque je mets la valeur de sessionCookie.Expire. De plus, parfois ça marche parfois comme la description ci-dessus :(

Répondre

4

Si vous stockez quelque chose dans l'objet Session, ASP.NET ne persistera pas votre session et utilisera un nouvel ID de session pour chaque requête. stocker une valeur factice, par exemple

Session("Dummy") = 1 

avant d'accéder à l'ID de session.

+0

où dois-je utiliser ce code? Je ne peux pas le mettre en ASPX parce que la réponse du fichier CSS supprime la session. –

0

Dans global.asax

private void Session_Start(Object sender, EventArgs e) 
{ 
    Session.Add("blerg",1); 
} 

je ne pouvais tester. En outre, sur IIS6, les fichiers statiques par défaut sont servis directement sans passer par le filtre ASP.NET isapi, donc si vous n'utilisez pas de mappage générique, tout cela est pour rien - vous n'aurez aucune session en cours pour un fichier statique s'il ne passe pas par le pipeline ASP.NET. Cassini/VS Dev Server envoie tous les fichiers statiques via le pipeline ASP.NET. Je ne sais pas quel est le comportement par défaut pour les fichiers statiques dans IIS7.

+0

Ma conjecture serait que les fichiers statiques sont servis directement par IIS par défaut. –

+0

La vraie réponse pour IIS 7 dépend du mode pipeline: http://learn.iis.net/page.aspx/508/wildcard-script-mapping-and-iis-7-integrated-pipeline/ Inutile de deviner quand google le sait. – MatthewMartin

Questions connexes