[英]What's wrong with this ASP.Net Configuration, as it relates to Sessions?
这可能是一个明显的解决方案,但是我已经碰壁了一段时间,只需要再看另一眼就可以指出我做错了什么。
我在web.config中有一个新的ASP.Net MVC项目,其中包含以下(相关)信息:
<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。 我以为这意味着我的会话配置在某种程度上是无效的,但是基于上面的信息,我看不到它如何。 Cookies已在浏览器中启用,并且我尝试使用无cookie会话,以防万一未做任何更改。
任何人都可以针对我可能配置不当的建议提出建议吗?
开发环境为VS2010 / C#/ ASP.Net MVC3
对我来说一切都很好。
您是否在项目的任何地方都调用了Session.End()
? 如果是这样,也许在它上面放一个断点,看看它是否被意外调用。
看来这与我使用DotNetOpenAuth的方式有关。
我仍然无法弄清为什么在收到身份验证响应时调用Session_End的原因(我怀疑这可能是设计使然),但是我设法通过持久保存所需的会话值来实现解决方法( UserID等)添加到cookie,然后在下次调用Session_Start时从cookie重建会话。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.