2008年07月04日
C#得到网站返回值中的SESSIONID
:网站为了区分不同的用户,会在每次访问这个站点时给此会话一个ID,我们称之为SESSIONID,而这个ID在每个IE会话中是可以直接看到的,但在模拟登录中就很难获取到。我就在这个问题上卡了很长时间的壳,现在将此问题的解决方案写出来,以供后人参考。:-)
其实说来得到这个SESSIONID的原理非常简单,就是在每次的HTTPWEBRESPONSE中CATCH到这个WEBEXCEPTION,从而在这个WEBEXCEPTION中得到那个网站返回的COOKIE值,一般来讲,此值为“Set-Cookie”,我们可以从此值中得到本次会话的SESSIONID,从而在以后的模拟登录时,将此SESSIONID作为Authorization子项发送给需要模拟登录的网页,从而实现自动登录!
现将我实现的这个得到SESSIONID的小函数贴出来::-)
private 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;
}
本文转自:SEO基地
本文链接:http://www.11zhuce.com/seo/773.html
相关文章 [查看与 C# 返回值 SESSIONID 相关的全部文章]- c# enum用法
- C#使用HttpWebRequest Post数据Session
- C# Stream作用
- c# exception 异常处理
- C#线程池实例
- c# indexof 用法
- C#采集方法
- c#与vb语法区别
0 回复,0 引用: C#中SESSIONID的获取
添加回复