会话cookie持续多长时间?什么时候应该重新验证



我可以使用多长时间会话 cookie?我有一个客户端应用程序,我在其中验证了一个SharePoint站点,我正在使用cookie来浏览子站点。我保存cookie并重用报头,以便在稍后登录到该站点,而无需再次进行身份验证。没有设定截止日期。cookie将持续多长时间,我应该何时再次验证?

会话cookie的过期时间因浏览器而异。我无法找到任何类型的参考,给出每个浏览器的当前细节。过去,会话cookie会在浏览器关闭时被销毁,但现在一些浏览器有这样的设置,如果启用,会话cookie会在浏览器关闭后持续存在。例如,Firefox的"当Firefox启动时:显示上次的窗口和选项卡"会导致这种情况发生,这有点令人惊讶。在Chrome中,"On startup: Continue where I left off"也是如此。

我真的不关心SharePoint,所以我有一段时间没有使用它,但我记得它使用ASP。Net Forms Authentication,从web中提取配置。像任何其他ASP一样配置。网的网站。也就是说,你并不真正关心你的cookie的超时时间。您关心的是服务器端会话令牌的超时时间——也就是说,所述cookie中包含的数据将被服务器识别多长时间。这是由web的forms标签中的timeout属性设置的。配置文件。Net应用程序:

<system.web>
    <!-- ... -->
    <authentication mode="Forms">
        <forms timeout="2880" />
    </authentication>
    <!-- ... -->
</system.web>

如果没有过期,它将一直存在,直到浏览器被杀死。通常在ASP中。如果会话cookie设置为20分钟超时。这通常很好。根据你的应用,你可能还需要一个javascript计时器。否则,浏览器将无法理解何时注销,直到页面刷新发生,敏感数据可能会暴露。您可以在任何在线银行站点上看到此实现。

(编辑从downvote澄清)事实上,会话cookie会一直存在,直到浏览器关闭。你可以在这里查看:http://www.allaboutcookies.org/cookies/cookies-the-same.html

上面的答案也是正确的,因为一些较新的浏览器会在崩溃/关闭后恢复会话cookie。

@Grinn,你提出了一个很好的观点。使用ASP时。Net Forms验证时,在会话cookie中放置一个加密的Ticket。就浏览器而言,cookie仍然存在,但是如果票证内的日期戳过期,它将被认为是无效的。

如果你在Sharepoint中使用一些类似于表单认证的功能,你可能应该编写自己的成员资格提供程序,它可以破解cookie中的Ticket,但忽略日期戳是否过期。构建自定义成员资格提供程序

最新更新