2009-08-25 7 views
0

Je ne sais pas pourquoi cela arrive. Dans le même programme, j'utilise des sessions qui ont fonctionné. Maintenant, j'essaie de rendre mon site compatible lorsque l'utilisateur n'envoie pas de cookies (ce qui devrait être simple). J'ai écritLa session semble ne pas fonctionner asp.net

long userId, loginId; 
//... 
//put data into cookies 
HttpContext.Current.Session.Add("userId", userId.ToString()); 
HttpContext.Current.Session.Add("loginId", loginId.ToString()); 

et je vois qu'ils sont nuls dans cette déclaration

var cookies = HttpContext.Current.Request.Cookies; 
long mUserId; 
string u, id; 
if (cookies["userId"] == null) 
{ 
    //these are null 
    u = (string)HttpContext.Current.Session["userId"]; 
    id = (string)HttpContext.Current.Session["loginId"]; 
} 

Dans les deux cas (travail et ne fonctionne pas) après avoir mis la session j'appelle

HttpContext.Current.Response.Redirect("someUrl");` 
+0

Quelle version d'IIS utilisez-vous? Y a-t-il un mode "Cookie Settings" dans "l'état de session" que vous réglez correctement? –

+0

Quel est exactement le problème? Cet état de session est null lorsque les cookies sont désactivés sur le navigateur des clients? – CSharpAtl

+1

Si le client n'accepte pas les cookies, SessionState ne peut pas être utilisé car il existe une clé de l'état de session stockée dans un cookie qui doit être utilisée pour récupérer l'état de la session lors de la publication. – CSharpAtl

Répondre

3

Comme mentionné par CSharpAtl c'est par la conception:

Cependant, dans le web.config si vous définissez la session à cookieless cela devrait fonctionner, mais il ajoutera un identifiant de session à l'URL.

Voici un article de MSDN sur ce point: http://msdn.microsoft.com/en-us/library/aa479314.aspx

+0

+ 1. bon appel si vous ne me dérange pas l'ID visible – CSharpAtl

+0

Je suis d'accord @CSharpAtl, certainement une solution moins que jolie. – klabranche

2

si le client n'accepte pas les cookies, SessionState ne peut pas être utilisé car il existe une clé de l'état de session stockée dans un cookie qui doit être utilisé pour récupérer l'état de la session lors de la publication

+0

J'aime cette réponse, mais klabranche a pris le temps de lier la session cookieless –

Questions connexes