簡體   English   中英

用於檢索ASP.Net會話ID的PHP代碼

[英]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會話ID,並且我不知道php命令是坦率的。 我嘗試了ASPSESSIONID,ASPSESSID,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,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);

以下是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實際上可用,則它應該在$_COOKIE變量中。 要查看$_COOKIE所有內容,可以使用print_r($_COOKIE); 如果會話ID在其中,則現在可以看到它並選擇正確的陣列鍵。

但是請記住,僅在滿足cookie的域限制的情況下才發送cookie。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM