PHP代码检索ASP.Net会话ID


PHP code for retrieving ASP.Net Session ID

我正在寻找一个php函数从一个asp.net页面获得会话id。我使用PHPSESSID来获取php会话id,它给出了正确的结果,如下所示:

$strCookie = 'PHPSESSID=' . $_COOKIE['PHPSESSID'] . '; path=/'; 
session_write_close();
echo $strCookie;
result: PHPSESSID=h7h1si1gqge0opqe7hedk46aa7; path=/

现在我想得到ASP。Net Session ID,老实说,我不知道php命令。我尝试了ASPSESSIONID, ASPSESSID, SessionID等不成功。每次结果都是空白,如下所示,而我可以看到ASP。Net_SessionId使用firebug。谁能帮我弄到ASP.net会话id。我试着在论坛上搜索,但没有得到任何东西。

$cookie="ASP.NET_SessionId=". $_COOKIE["ASPSESSIONID"] ;
session_write_close();
echo $cookie;
result: ASP.NET_SessionId=

也尝试了这段代码,但没有得到任何东西:

if(stripos($data,"ASP.NET_SessionId"))
{
$retData = explode("ASP.NET_SessionId=", $data);
$sessionTempValue = explode(";",$retData[1]);
 //setup the cookie with the recd data here..
echo $sendCookie1 = "ASP.NET_SessionId=".$sessionTempValue[0].'; path=/';
setcookie("ASP.NET_SessionId",$sessionTempValue[0]);
}
编辑:

感谢TVK, Icarus和Mike Brant给我指明了正确的方向。我修改了我的脚本一点点如下所示,现在ASP。Net SessionId被保存在cookiedk.txt文件中,但是,它仍然没有出现在$_COOKIE中。

define('COOKIE_FILE', 'cookiedk.txt');
curl_setopt($ch, CURLOPT_COOKIESESSION, 1); 
curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIE_FILE);

下面是cookedk .txt的内容:

# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
#HttpOnly_xyz.com   FALSE   /   FALSE   0   ASP.NET_SessionId   jq0jeb45lldjlo45wreqsl45

还有一个帮助,当多个用户同时与系统交互时,将会话ID保存在文件中可能会有问题。是否有一种方法可以通过脚本并将其设置在那里而不是保存在文件中?

如果ASP会话ID实际上是可用的,那么它应该在$_COOKIE变量中。要查看$_COOKIE的所有内容,可以使用print_r($_COOKIE);。如果会话ID在那里,你现在可以看到它,并选择正确的数组键。

请记住,只有在满足cookie的域限制时才会发送cookie