• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C#中SESSIONID的获取

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

网站为了区分不同的用户,会在每次访问这个站点时给此会话一个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;
        }


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#out关键字发布时间:2022-07-10
下一篇:
在C#中把两个DataTable连接起来,相当于Sql的InnerJoin方法发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap