業務場景:
在多系統業務集成時,往往會有單點登錄跨站獲取信息或打開頁面,此時系統往往是url攜帶ticket信息效驗,ticket效驗通過后頁面重定向到指定的頁面或接口
問題症狀:
在.Net中使用WebClient或WebRequest訪問(服務器內部重定向的url)時,重定向前更改的cookie沒有在重定向后沒有,以及重定向前后SessionId會出現變化
示例URL:http://localhost:1133/login.xip?LoginMethod=ssologin&Ticket=adc395c9-994e-4e38-b30d-50494832849f&ReturnUrl=userinfo.xip
解決方案:
使用HttpWebRequest創建請求,設置CookieContrainer
完整代碼:
string url = "http://localhost:1133/login.xip?LoginMethod=ssologin&Ticket=adc395c9-994e-4e38-b30d-50494832849f&ReturnUrl=userinfo.xip"; var web = (HttpWebRequest)HttpWebRequest.Create(url); web.CookieContainer = new CookieContainer(); var res = web.GetResponse();