C#中SESSIONID的获取

网站为了区分不同的用户,会在每次访问这个站点时给此会话一个ID,我们称之为SESSIONID,而这个ID在每个IE会话中是可以直接看到的,但在模拟登录中就很难获取到。我就在这个问题上卡了很长时间的壳,现在将此问题的解决方案写出来,以供后人参考。:-)

     其实说来得到这个SESSIONID的原理非常简单,就是在每次的HTTPWEBRESPONSE中CATCH到这个WEBEXCEPTION,从而在这个WEBEXCEPTION中得到那个网站返回的COOKIE值,一般来讲,此值为“Set-Cookie”,我们可以从此值中得到本次会话的SESSIONID,从而在以后的模拟登录时,将此SESSIONID作为Authorization子项发送给需要模拟登录的网页,从而实现自动登录!

现将我实现的这个得到SESSIONID的小函数贴出来::-)


        ******* String getrequestauthorization(String str)
        {
            String url = "www.11zhuce.com";                  //需要模拟登录的网页地址,可由VS05在网页登录时探测出来

            HttpWebRequest myrequest;
            try
            {
                myrequest = (HttpWebRequest)WebRequest.Create(url);
            }
            catch (WebException we)
            {
                MessageBox.Show(we.Message);
                return "";
            }

            String session="";
            HttpWebResponse myresponse;
            try
            {
                myresponse = (HttpWebResponse)myrequest.GetResponse();
            }
            catch (WebException ex)                      //下面非常关键!!!此处得到sessionid!!!
            {
                WebResponse res = ex.Response;
                session = res.Headers["Set-Cookie"];
                session = session.Substring(0, session.IndexOf(";"));
            }
            return session;
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值