我从一无所知中来,向着无限未知中去

.Net web重定向请求session及cookie变化丢失问题解决方案

业务场景:

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

  

posted @ 2019-02-18 17:41  何苦来哉  阅读(1551)  评论(0编辑  收藏  举报

知识才让我觉得世界如此美好