1

嗨,我正在尝试找到一种方法来读取我在 .net Web 应用程序中生成的 cookie 以在 php 页面上读取它,因为我希望用户登录一次,但他们应该能够查看 .net 和 php 页面,直到cookie过期用户不需要再次登录,但是.net和php web应用程序都在不同的服务器上,请帮我解决这个问题,谢谢

4

4 回答 4

4

你提到:

但是 .net 和 php Web 应用程序都在不同的服务器上

两个应用程序是否在同一个域名下运行?(即:www.mydomain.com)还是它们在不同的域上?

如果它们在同一个域上,那么您可以通过使用 $_COOKIE 变量来执行您在 PHP 中尝试执行的操作。只需通过以下方式获取 cookie 的值

$myCookie = $_COOKIE["cookie_name"];

然后你可以用 $myCookie 的值做任何你想做的事。

但是,如果它们位于不同的域(即:foo.mydomain.com 和 bar.mydomain.com)上,则您无法从两个站点访问 cookie。Web 浏览器只会向设置 cookie 的域上的页面发送 cookie。但是,如果您最初只使用顶级域 (mydomain.com) 设置 cookie,那么子域 (anything.mydomain.com) 应该能够读取 cookie。

于 2008-09-17T22:03:01.033 回答
1

机器上的两台服务器是否在同一个域内?如果是这样,您应该将 cookie 范围设置为域而不是 FQDN;然后两台机器都可以读取它们;

Response.Cookies["domain"].Domain = "contoso.com";

将允许 contoso.com、www.contoso.com、hotnakedhamsters.contoso.com 等访问它。

于 2008-09-17T21:28:20.853 回答
0

任何提供给浏览器的 cookie 都可以被处理请求的服务器读取——它们与语言无关。

在 PHP 中尝试 $_COOKIE

于 2008-09-17T21:26:06.740 回答
0

只要站点相同(即 www.example.com),cookie 就与平台无关。正如 Todd Kennedy 所说,尝试超级全球 $_COOKIE。如果您的站点不同,但您将无法读取 cookie,则它们应该是特定于站点的,并防止这种类型的跨站点访问。

于 2008-09-17T21:28:15.797 回答