Session似乎无法运行asp.net

时间:2009-08-25 16:24:26

标签: asp.net session

我不确定为什么会这样。在同一个程序中,我正在使用有效的会话。现在我想在用户不发送cookie时使我的网站兼容(这应该很简单)。我写了

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

我发现在这个陈述中它们是空的

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"];
}

在我设置会话后,在两种情况下(工作和不工作)我都会调用

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

2 个答案:

答案 0 :(得分:3)

如CSharpAtl所述,这是设计:

但是,在web.config中,如果您将会话设置为无cookie,则应该可以正常工作但是它会向网址添加会话ID。

以下是来自MSDN的文章: http://msdn.microsoft.com/en-us/library/aa479314.aspx

答案 1 :(得分:2)

如果客户端不接受cookie,则不能使用SessionState,因为存在于cookie中的会话状态的密钥必须用于在回发时检索会话状态