Сессия вроде не работает asp.net - PullRequest
0 голосов
/ 25 августа 2009

Я не уверен, почему это происходит. В той же программе я использую сессии, которые работали. Теперь я пытаюсь сделать свой сайт совместимым, когда пользователь не отправляет куки (что должно быть просто). Я написал

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 ]

3 голосов
/ 25 августа 2009

Как упомянуто CSharpAtl, это по замыслу:

Однако в файле web.config, если вы устанавливаете сеанс без файлов cookie, это должно работать, НО это добавит идентификатор сеанса в URL.

Вот статья из MSDN на эту тему: http://msdn.microsoft.com/en-us/library/aa479314.aspx

2 голосов
/ 25 августа 2009

, если клиент не принимает куки, SessionState не может использоваться, потому что есть ключ к состоянию сеанса, который хранится в куки, который должен использоваться для получения состояния сеанса при обратной передаче

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...