业务场景:
在多系统业务集成时,往往会有单点登录跨站获取信息或打开页面,此时系统往往是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();
|