Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于检索ASP.Net会话ID的PHP代码_Php_Asp.net - Fatal编程技术网

用于检索ASP.Net会话ID的PHP代码

用于检索ASP.Net会话ID的PHP代码,php,asp.net,Php,Asp.net,我正在寻找一个php函数从asp.net页面获取会话id。我使用PHPSESSID获取php会话id,它给出了正确的结果,如下所示: $strCookie = 'PHPSESSID=' . $_COOKIE['PHPSESSID'] . '; path=/'; session_write_close(); echo $strCookie; result: PHPSESSID=h7h1si1gqge0opqe7hedk46aa7; path=/ 现在我想获取ASP.Net会话ID,坦率地说,我

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

$strCookie = 'PHPSESSID=' . $_COOKIE['PHPSESSID'] . '; path=/'; 
session_write_close();
echo $strCookie;
result: PHPSESSID=h7h1si1gqge0opqe7hedk46aa7; path=/
现在我想获取ASP.Net会话ID,坦率地说,我不知道php命令是什么。我尝试了ASPSESSIONID、ASPSESSIONID、SessionID等,但没有成功。每次结果都是空的,如下所示,而我可以看到使用firebug的ASP.Net_SessionId。请有人帮我获取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、伊卡洛斯和迈克·布兰特为我指引了正确的方向。我修改了我的脚本,如下所示,现在ASP.Net SessionId被保存在文件cookiedk.txt中,尽管如此,它仍然没有出现在$\u COOKIE中

define('COOKIE_FILE', 'cookiedk.txt');
curl_setopt($ch, CURLOPT_COOKIESESSION, 1); 
curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIE_FILE);
以下是cookiedk.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实际上可用,那么它应该位于
$\u COOKIE
变量中。要查看
$\u COOKIE
的所有内容,可以使用
打印($\u COOKIE)。如果会话ID在其中,您现在可以看到它并选择正确的数组键


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

查看请求中发送的所有cookie,并从中找出合适的名称,而不是猜测。Google Chrome developer tools是你的朋友…显然,cookie也需要来自同一个域才能被读取。是的,可能我看错了地方,它不在cookie中。它出现在Firebug的请求标题下。不知道如何从那里检索。您好,谢谢您这么快的回复,我尝试了打印($COOKIE),但ASP.Net会话ID不在那里。虽然小甜饼里有PHPSESSID,这就是我不吃它的原因。既然曲奇里没有,我从哪里能得到呢。我可以通过firebug看到ASP.Net会话ID,如果我使用该会话ID,我的程序就可以正常运行。但我不能一直为每个会话手动放置它,需要通过编程捕获它。下面是firebug的详细信息:Connection keep alive Cookie ASP.NET_SessionId=3KNXI145ESV22TVLZUA5GY45那么ASP.NET Cookie上的域限制可能对您的PHP站点无效。我不太清楚你的具体情况,但是你可以尝试比较Firefox中的PHP和ASP.NET cookie。