【问题标题】:What's a good strategy for renewing the expiration of a forms auth ticket between .net and php?更新.net和php之间的表单身份验证票到期的好策略是什么?
【发布时间】:2010-10-12 18:31:59
【问题描述】:
我正在创建一个应用程序,该应用程序将从 .net 获取存储表单身份验证票证的 cookie 的内容。那部分已经完成。该票证中包含过期时间,默认为 20 分钟。
所以场景是,用户登录并在 .net 端进行验证。然后它们被重定向到我的 PHP 应用程序。我得到用户名、票证到期等。
当用户在我的应用上保持活跃状态时,更新票证的最佳方式是什么?这里有两种可能的方法,我相信还有更多:
距到期时间还有 10 分钟,如果用户仍处于活动状态,则会联系 .net Web 服务向我开具新的到期票。当页面空闲 20 分钟后,用户被重定向到原来的 .net 登录。
PHP 使用 cookie 来处理过期问题。当它接近 10 分钟并且用户仍在浏览时,它会刷新。但是当页面空闲 20 分钟时,用户会被重定向回原来的 .net 登录。
其他建议?优点,缺点?我正在寻找速度和安全性。
【问题讨论】:
标签:
.net
php
asp.net
cookies
forms-authentication
【解决方案1】:
我会根据您的问题假设您没有使用持久性 cookie,并且您正在使用滑动到期。如果您打算尝试在 php 中复制相同的行为,那么您可能需要查看this。
举个例子:如果登录页面是在下午 5:00 00:00:00 访问的,如果 timeout 属性为 10 并且slidingExpiration 属性为设置为真。现在,如果在下午 5:05 00:00:00 再次浏览任何网页,cookie 和票证超时期限将重置为下午 5:15 00:00:00。
基本上,每当用户访问您的某个 php 页面时,您都会更新 cookie 的过期时间。
另一种选择是在您的页面中嵌入 IFRAME 之类的内容,这会从您的 .net 站点中提取 .aspx。这将具有“刷新” cookie 的效果。