2013-11-15 3 views
0

У меня есть приложение MVC4, .Net4.5, где мы используем сеансы. Без видимой причины MVC4 не создает Cookie Session ID Cookie. Ниже аутентификация и sessionstate параметров из web.configMIssing Asp.Net Session ID Cookie

<authentication mode="Forms"> 
    <forms cookieless="UseCookies" loginUrl="~/Login" timeout="480"></forms> 
</authentication> 
<sessionState timeout="50" cookieless="UseCookies" mode="InProc"/> 

Это не проблема с печеньем как формы Auth печенье присутствует.

Предложения?

+0

Вы пытаетесь получить сессию cookie с помощью JavaScript? – Andrei

ответ

5

По всей видимости, MVC4 не создает Cookie Session ID Cookie.

Может быть, вы никогда не хранить что-либо в сессии на сервере:

Session["foo"] = "bar"; 

Только тогда вы увидите куки сессии создаются в ответ на данный запрос. Это по дизайну. Даже если вы включите сеанс ASP.NET на сервере, cookie никогда не будет установлен клиенту до тех пор, пока значение не будет сохранено в сеансе.

+0

Затем, как аутентификация форм будет работать без cookie сеанса? Извините, я не уверен в этом. как я понимаю, ему нужен cookie сеанса ASP.Net. –

+1

Аутентификация форм и сеансы ASP.NET не имеют абсолютно ничего общего. Это два совершенно разных понятия. Например, вы можете отлично использовать проверку подлинности с помощью форм и отключить сеанс ASP.NET (мой предпочтительный сценарий) или использовать сеансы ASP.NET без проверки подлинности с помощью форм. Многие люди путают эти два понятия. Аутентификация форм обеспечивает механизм отслеживания аутентифицированных пользователей на вашем сайте с помощью куки-файлов. Сессия ASP.NET предоставляет вам механизм для хранения объектов .NET на сервере, которые могут быть получены в последующих запросах. –

+0

в webforms были ситуации, когда sessionid был изменен каждый запрос (если вы не восстановили что-то в сеансе), я считаю, что более подходящий способ - вообще не устанавливает cookie - это именно то, что делает MVC 4: -) –