【发布时间】:2011-07-02 10:37:54
【问题描述】:
首先,请不要忽略这个问题 - 我知道这是一个丑陋的情况,但嘿,现实生活并不美好。
我正在为一个用 asp.net 编写的 web 应用程序开发一个额外的部分,但在 php 中 - 它大部分已完成(这两个部分在数据库之外并没有真正相互通信 - 集成主要只是化妆品。)
我唯一的问题是在 .net 会话过期时从 php 部分检测到,以便将用户注销并重定向到登录页面。
我相信 asp.net 应用程序已编译,但无论哪种方式我都不允许更改它,所以我想也许最好的办法是制作一个输出 true 或 false 的非常小/简单的 aspx 页面我可以使用 php 中的 curl 调用它(并传递浏览器的 cookie。)
这可能吗?我不确定会话安全如何在 asp.net 上工作,例如一个 .net 应用程序是否可以读取另一个的会话变量,但如果它是 php 之类的,那么它是可能的。
mypage.php --curl--> checksession.aspx --|
| |
<----------- true / false <---------------
所以 mypage 使用 curl 发出一个 GET(带有来自浏览器的 cookie)来检查会话,检查会话只返回一个 true 或 false(或类似的东西),如果为 false,mypage 将重定向到站点的登录页面。
php端的认证已经整理好了,和这个问题是分开的。
所以说真的,我需要知道的是,我是否可以只拥有一个简单的 .aspx 文件来执行此检查,如果可以,我应该去哪里了解如何编写这样一个简单的页面?如果只是一三行,请告诉我这些行是什么(对不起,我从来没有做过任何 .net 的东西..)
如果这不可能,那么如果您不介意,您能否提供一些替代解决方案?谢谢!
-- 编辑--
在花了大部分时间处理这个问题之后,我现在认为完全使用 php 来解决这个问题是个坏主意。实际上涉及两个级别的身份验证(一个是正常的 HTTP 请求/响应登录类型的东西,然后是 .net 会话)——除此之外,我完全错过了显然这些会话几乎肯定会被我必须欺骗的用户浏览器的 IP 或来自 curl 的东西,因为它将在服务器上运行。
所以我想我将在页面标题中的某处使用 jQuery 来根据需要检查和重定向...不知何故:/
-- 编辑 2-- 好的,所以 javascript 方式非常适合我的需求 - 显然它不是一种安全的做事方式,但幸运的是,在这种情况下它没关系,因为这只是在内网上使用的一个应用程序(而且他们验证用户的伪劣方式很糟糕无论如何。)
【问题讨论】:
-
另一个更难看的选择是使用 curl 来查看返回的页面是否是登录页面本身并从那里开始......但这很丑陋。
-
另一件更丑陋的事情是只使用 curl 来 ping aspx 页面以保持会话处于活动状态..ug.
标签: php asp.net session cookies curl