Что не так с этой Конфигурацией ASP.Net, поскольку это относится к Сессиям? - PullRequest
0 голосов
/ 01 марта 2011

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

У меня естьновый проект ASP.Net MVC со следующей (соответствующей) информацией в web.config:

 <system.web>
   <authentication mode="Forms">
     <forms loginUrl="~/User/Login" name="TestProjectSession" timeout="30" />
   </authentication>
   <sessionState mode="InProc" cookieless="false" timeout="30" />
 </system.web>

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

Соответствующий код:

Global.asax.cs

protected void Session_Start() { Session.Add("UserID", ""); }

Действие аутентификации (после получения информации о пользователе):

Session["UserID"] = "useridgoeshere";

Проблема, с которой я сталкиваюсь, заключается в том, что Session_End вызывается, когда я запрашиваю любую страницу после отправки ответа аутентификации.Я предполагаю, что это означает, что каким-то образом моя конфигурация сеанса недопустима, но я не могу понять, как это основано на информации выше.Файлы cookie включены в браузере, и я попытался использовать сеансы без файлов cookie на всякий случай без каких-либо изменений.

Может кто-нибудь отклонить предложения относительно того, что я мог неправильно настроить?

Среда разработкиVS2010 / C # / ASP.Net MVC3

Ответы [ 2 ]

0 голосов
/ 01 марта 2011

Похоже, это было связано с тем, как я работал с DotNetOpenAuth.

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

0 голосов
/ 01 марта 2011

Это все выглядит хорошо для меня.

Вам звонили на Session.End() где-нибудь в вашем проекте? Если это так, возможно, поставьте точку останова и посмотрите, вызывается ли она неожиданно.

...