在 .net 和 php 之间续订表单身份验证票证过期的好策略是什么?

发布于 2024-07-14 11:06:04 字数 516 浏览 7 评论 0原文

我正在创建一个应用程序,该应用程序将从 .net 获取存储表单身份验证票证的 cookie 的内容。 那部分已经完成了。 该票证中有一个过期时间,默认为 20 分钟。

因此,场景是,用户登录并在 .net 端进行验证。 然后它们被重定向到我的 PHP 应用程序。 我获取用户名、票证到期时间等。

当用户在我的应用程序上保持活跃状态​​时,续订票证的最佳方法是什么? 这里有两种可能的方法,我相信还有更多:

  1. 在距离到期还有 10 分钟时,如果用户仍然处于活动状态,则会联系 .net Web 服务向我发出一张具有新到期日期的新票证。 当页面空闲 20 分钟时,用户将被重定向到原始 .net 登录名。

  2. 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:

  1. 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.

  2. 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小…红帽 2024-07-21 11:06:04

我将从您的问题假设您没有使用持久性 cookie,并且您正在使用滑动过期。 如果您打算尝试在 php 中复制相同的行为,那么您可能需要看看这个。

举个例子:如果登录页面是在下午 5:00 00:00:00 访问的,那么如果 timeout 属性为 10,slidingExpiration 属性为设置为 TRUE。 现在,如果在下午 5:05 00:00:00 再次浏览任何网页,Cookie 和票证超时期限将重置为下午 5:15 00:00:00。

基本上,只要用户访问您的 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.

Let us take an example: If the logon page is accessed at 5:00 00:00:00 PM, it should expire at 5:10 00:00:00 PM if the timeout attribute is 10 and the slidingExpiration attribute is set to TRUE. Now, if any Web page is browsed again at 5:05 00:00:00 PM, the cookies and ticket time-out period will be reset to 5:15 00:00:00 PM.

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文