我不使用FormsAuthenticatio 。
当用户登录时,我会将用户信息保存到会话中,如:
HttpContext.Current.Session["UserId"] = model.Id;
HttpContext.Current.Session["Name"] = model.Name
但是我如何设置会话过期时间使用代码?
也许只有30分钟,也许用户选择"记住我" 然后将其保存24小时。
第二个问题是:如果我已经在web.config上设置过期时间,如:
<sessionState mode="InProc" timeout="30" />
那么优先级怎么样?先配置或先代码?
答案 0 :(得分:1)
您可以使用此代码在global.asax
事件的session_start
代码中设置会话。
Session.Timeout = 24*60 ;
我已检入代码,在code
中设置会话如上所述覆盖web.config
中的会话。因此,上述内容具有更高的优先级,并将使用此值,web.config
的值将被丢弃。
答案 1 :(得分:0)
如果用户勾选&#34;记住我&#34;,只需将一个随机guid添加到活动用户的数据库中,并为他们提供一个具有相同guid的cookie。当用户没有有效会话回来时,检查cookie并在数据库中搜索guid。如果有效,则用户已登录