设置会话过期时间如何在ASP.NET MVC5上使用代码?

时间:2014-10-12 17:01:23

标签: c# asp.net .net asp.net-mvc

不使用FormsAuthenticatio

当用户登录时,我会将用户信息保存到会话中,如:

HttpContext.Current.Session["UserId"] = model.Id;
HttpContext.Current.Session["Name"] = model.Name

但是我如何设置会话过期时间使用代码

也许只有30分钟,也许用户选择"记住我" 然后将其保存24小时。

第二个问题是:如果我已经在web.config上设置过期时间,如:

<sessionState mode="InProc" timeout="30" />

那么优先级怎么样?先配置或先代码?

2 个答案:

答案 0 :(得分:1)

您可以使用此代码在global.asax事件的session_start代码中设置会话。

Session.Timeout = 24*60 ;

我已检入代码,在code中设置会话如上所述覆盖web.config中的会话。因此,上述内容具有更高的优先级,并将使用此值,web.config的值将被丢弃。

答案 1 :(得分:0)

如果用户勾选&#34;记住我&#34;,只需将一个随机guid添加到活动用户的数据库中,并为他们提供一个具有相同guid的cookie。当用户没有有效会话回来时,检查cookie并在数据库中搜索guid。如果有效,则用户已登录