我在asp.net.i中使用表单身份验证已将我的Authenticate cookie过期设置为60分钟,在web.config中将会话时间设置为60分钟,在web.config中超时为60分钟以及在iis空闲时间中60分钟
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="60" defaultUrl="~/Landing.aspx" slidingExpiration="true"/>
</authentication>
<system.web>
<sessionState timeout="60" mode="InProc"/>
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
2, // Version number
txtUserName.Text.Trim(), // Username
DateTime.Now, // Issue date
DateTime.Now.AddMinutes(60), // Expiration date
false, // Persistent?
userData // User data
);
因为我正在使用表单身份验证,如果用户空闲60分钟,用户应该在60分钟后被重定向到登录页面.但我需要知道如果用户没有空闲60分钟会发生什么.验证cookie是否会过期?尽管用户仍然经过身份验证?
编辑
我错过了另一件事我已经在IIS中将应用程序池标识设置为网络服务
最佳答案 是的,用户仍将过期,并且他/她将无权使用服务器上的可用资源.您正在使用Forms Authentication Cookie,它是FormsAuthentication Ticket的简单容器.
由于您的票证是非持久性的,这将导致您的“cookie”到期,这会将用户重定向到LOGIN PAGE.请注意,这只处理“身份验证”,不要与Session混淆.
您可能会有会话“过期”,但用户仍然经过身份验证,这可能是一个问题.
因此,要直接回答您的问题,“用户身份验证”将过期,并且他/她将被重定向到登录页面,在登录页面上将创建一个新的cookie,这将创建另一个“会话”对象.超时前一个将过期.
建议:使“Web.config”中的表单超时小于Session.对于与Auth / Security相关的任何Auth / Security,不要建立对Session的依赖;这两个是不同的容器,应该这样对待.