asp.net中的身份验证Cookie

我在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的依赖;这两个是不同的容器,应该这样对待.

点赞