在 .net 和 php 之间续订表单身份验证票证过期的好策略是什么?
我正在创建一个应用程序,该应用程序将从 .net 获取存储表单身份验证票证的 cookie 的内容。 那部分已经完成了。 该票证中有一个过期时间,默认为 20 分钟。
因此,场景是,用户登录并在 .net 端进行验证。 然后它们被重定向到我的 PHP 应用程序。 我获取用户名、票证到期时间等。
当用户在我的应用程序上保持活跃状态时,续订票证的最佳方法是什么? 这里有两种可能的方法,我相信还有更多:
在距离到期还有 10 分钟时,如果用户仍然处于活动状态,则会联系 .net Web 服务向我发出一张具有新到期日期的新票证。 当页面空闲 20 分钟时,用户将被重定向到原始 .net 登录名。
PHP 使用 cookie 来处理过期问题。 当接近 10 分钟并且用户仍在浏览时,它会刷新。 但是,当页面空闲 20 分钟时,用户将被重定向回原来的 .net 登录。
其他建议? 这两者的优点、缺点? 我既追求速度又追求安全。
I'm creating an application that will get the contents of a cookie storing a forms authentication ticket from .net. That part is done. In that ticket is an expiration time, by default 20 minutes.
So the scenario is, a user logs in and is validated on the .net side. Then they are redirected to my PHP app. I get the username, ticket expiration, etc.
What is the best way to go about renewing the ticket as the user stays active on my app? Here are two possible approaches, I'm sure there are more:
At 10 minutes away from expiration and if the user is still active, a .net web service is contacted to issue me a new ticket with a new expiration. When the page is idle for 20 minutes, the user is redirected to the original .net login.
PHP takes care of the expiration with a cookie on its side. When it approaches 10 minutes and the user is still browsing it refreshes. But when the page is idle for 20 minutes, the user is redirected back to the original .net login.
Other suggestions? Pros, cons to either of these? I'm looking for both speed and security.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我将从您的问题假设您没有使用持久性 cookie,并且您正在使用滑动过期。 如果您打算尝试在 php 中复制相同的行为,那么您可能需要看看这个。
基本上,只要用户访问您的 PHP 页面之一,您就会更新 Cookie 的过期时间。
另一种选择是在页面中嵌入 IFRAME 之类的内容,这会从 .net 站点中下载 .aspx。 这将具有“刷新”cookie 的效果。
I'll assume from your question that you're not using persistent cookies and that you're using sliding expiration. If you intend on trying to replicate the same behavior in php then you might want to take a look at this.
Basically you would update the cookie's expiration time whenever the user accesses one of your php pages.
Another option is to embed something like an IFRAME in your pages which would pull down an .aspx from your .net site. This will have the effect of "refreshing" the cookie.