2012-09-11 111 views
4

我在asp.net.i中使用表单身份验证已将身份验证Cookie过期设置为60分钟,会话时间超过60分钟在web.config中超时在web.config中为60分钟,并在IIS中的空闲时间来60分钟身份验证在asp.net中的Cookie

<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后到登录页面mins.but我需要知道什么如果用户没有闲置60分钟,会发生。验证cookie是否会过期?尽管用户仍然通过身份验证?

编辑

我错过了一两件事,我已经在IIS中设置应用程序池标识为网络服务

回答

2

是用户仍然会过期,他/她将不会被授权使用服务器上的可用资源。您正在使用Forms Authentication Cookie,它是FormsAuthentication标签的简单容器。

因为您的票证是非持久性的,这会导致您的“Cookie”过期,从而将用户重定向到登录页面。注意这只处理“身份验证”,不要与Session混淆。

您可能会话“过期”,但用户仍然通过身份验证,这可能是一个问题。

因此,要直接回答您的问题,“用户身份验证”将过期,他/她将被重定向到登录页面,在登录页面上将创建一个新的cookie,这将创建另一个“会话”对象。加班前一次会过期。

建议:使“Web.config”中的窗体超时时间小于Session。不要在任何与Auth /安全相关的Session上建立依赖关系;这两个是不同的容器,应该这样对待。