在php页面中传递或者读取.net cookie
嗨,我正在尝试找到一种方法来读取我在.net Web应用程序中生成的cookie以便在php页面上进行读取,因为我希望用户登录一次,但他们应该能够查看.net和php页面,直到Cookie过期,用户无需再次登录,但是.net和php Web应用程序都位于不同的服务器上,请为我解决此问题,谢谢
解决方案
回答
服务器处理请求可以读取提供给浏览器的任何cookie,因为它们与语言无关。
在PHP中尝试$ _COOKIE
回答
只要网站是相同的(即www.example.com),Cookie就与平台无关。正如Todd Kennedy所说的,尝试超级全局$ _COOKIE。如果站点与其他站点不同,尽管我们将无法读取Cookie,则应将其视为特定于站点的站点,并阻止此类跨站点访问。
回答
机器上的两个服务器是否在同一域中?如果是这样,则应将cookie范围设置为域而不是FQDN;然后两台机器都将能够读取它们;
Response.Cookies["domain"].Domain = "contoso.com";
将允许contoso.com,www.contoso.com,hotnakedhamsters.contoso.com等访问它。
回答
我们提到:
but both .net and php web applications are on different servers
两个应用程序都使用相同的域名运行吗? (即:www.mydomain.com)还是它们位于不同的域?
如果它们在同一个域中,则可以使用$ _COOKIE变量来完成我们在PHP中要执行的操作。只需通过以下方式获取cookie的值
$myCookie = $_COOKIE["cookie_name"];
然后,我们可以使用$ myCookie的值做任何我们想做的事情。
但是,如果它们位于不同的域(即foo.mydomain.com和bar.mydomain.com)上,则无法从这两个站点访问cookie。 Web浏览器只会将cookie发送到设置了cookie的域上的页面。但是,如果最初将Cookie设置为仅具有顶级域(mydomain.com),则子域(anything.mydomain.com)应该能够读取Cookie。