我正在考虑使用<sessionState mode="InProc" timeout="45" />
,因为有些用户反复登录,我想保存一段时间。但是,在我将其添加到我的web.config
文件之前,我想确保没有副作用。
我读了sessionState
个版本,虽然我已经很清楚发生了什么,但我很想知道asp.net mvc 3
应用程序的默认设置是什么,因为没有定义sessionState
1}}此时我的system.web
内部。
我知道应用程序可以在没有声明的情况下访问Session["key"]
,尽管我试图避免在Session上加载这种类型的负载。我假设我的应用程序继承了IIS 7中的一个设置(此应用程序位于共享托管环境中)。
据我所知,如果我在会话中使用专用数据库或服务器,可能会出现问题,但这只是一个基本设置,就这一点而言,没什么特别的。
asp.net mvc 3是否有默认sessionState
?它只是被遗传了吗?如果它在IIS中的其他位置定义,我的web.config
中是否会覆盖它会产生副作用吗?
答案 0 :(得分:5)
截至目前,默认Timeout
= 20分钟。
These是.Net Framework 4的默认值。我认为它们不会因为MVC 3而改变。
答案 1 :(得分:0)
接受的答案是正确的,但OP可能实际意味着询问认证超时,这将是30分钟。
我知道这是旧的,但澄清会话状态与身份验证无关很重要。 OP没有说明正在使用哪种形式的身份验证。假设表单身份验证,那么默认超时为30分钟,并在web.config中的<authentication...<forms
元素中进行控制。我发现在使用进程内会话时,最好将身份验证超时设置为小于会话超时。我倾向于使用进程外会话作为首选项,因为它保留了来自app-pool循环的会话数据。