zoukankan      html  css  js  c++  java
  • 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;
            }

  • 相关阅读:
    程序员版狂人日记二 .
    [骑行小记1]骑在上海
    启动/关闭xp_cmdshell
    脑力风暴之小毛驴历险记(3)低进高出的小鸡(上)
    如何查看SQL Server的实例名(转载)
    MSBuild 项目属性以及任务参考
    SQL update 语句中使用表别名&&查找占用数据库的进程
    [当算法遇上数学]元芳,你怎么能随即生成m个数,让其和等于n?(加强版)
    IIS error: Service Unavailable : HTTP Error 503. The service is unavailable
    SQL with(nolock)详解 [转]
  • 原文地址:https://www.cnblogs.com/hackpig/p/1668425.html
Copyright © 2011-2022 走看看