繁体   English   中英

与会话相关的此ASP.Net配置有什么问题?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM