我們正在企業環境中實施單點登錄機制,其中令牌在使用HTTP標頭的應用程序之間共享。現在,爲了進行集成測試,我需要編寫一個應用程序來模擬這一點。通過HTTP頭將值從一個ASP.NET應用程序傳遞到另一個ASP.NET應用程序
在ASP.NET中,我可以重定向到另一個網頁並在過程中傳遞一個自定義HTTP標頭嗎?
感謝
我們正在企業環境中實施單點登錄機制,其中令牌在使用HTTP標頭的應用程序之間共享。現在,爲了進行集成測試,我需要編寫一個應用程序來模擬這一點。通過HTTP頭將值從一個ASP.NET應用程序傳遞到另一個ASP.NET應用程序
在ASP.NET中,我可以重定向到另一個網頁並在過程中傳遞一個自定義HTTP標頭嗎?
感謝
您需要在網站創建一個網頁B是站點A將用戶重定向太那個設置與理想值的cookie。例如
。
authenticate.aspx會設置一個cookie,然後每一個請求會得到的authToken。
服務器可以在HTTP標頭中發送給客戶端上的重定向,但客戶不會發回給其他遠程服務器。
在這種情況下,理想的解決方案是使用Cookie或QueryString變量。如果主機名稱不同,Cookie可能會遭遇跨域問題並變得複雜。
在上述任何一種方法中,必須注意不要因爲信息是來自客戶端(或某些黑帽)的用戶輸入而信任此信息而造成安全漏洞。
是的..它的服務器端實現,我堅持。我如何獲得一個asp.net應用程序發送自定義HTTP標頭到另一個域?我正在尋找一種解決方案,將控件重定向到服務器的另一個URL,即可能使用Response.Redirect? – 2010-07-12 01:11:42
是的,Response.Redirect如果數據足夠小以便加密,則將加密值放在QueryString(Forget標頭)上。需要從服務器A到服務器B共享密鑰。同步機器密鑰並使用它們來加密/解密數據。如果這不可能,或者數據太多,則在QueryString上放置一個如Guid的標記。然後在服務器之間使用一個反向通道,服務器B可以調用服務器A並詢問輸入請求的詳細信息。這種定製解決方案非常容易出錯,請務必考慮攻擊媒介。看看Windows Identity Foundation。 – umbyersw 2010-07-12 06:50:56
好的,好主意。但在使用Cookie時我有點懷疑。如果客戶端電腦禁用Cookie,或者更糟,如果黑客希望,他/她可以操縱Cookie。 此外,我希望模擬現場系統的測試環境。實際的身份驗證通過HTTP頭進行。在生產中,他們使用CA Inc提供的一些網關(不確定具體的產品名稱)。 – 2010-07-19 02:09:38
您唯一的選擇是使用Cookies或將其存儲在URL上,您無法命令客戶端發送自定義http標題。 – bleevo 2010-07-21 10:44:25
另外如果你擔心cookies。 http://msdn.microsoft.com/en-us/library/aa479314.aspx 而「黑客」可以像cookie一樣簡單地改變http頭。 – bleevo 2010-07-21 10:45:15