知识大全 访问需登录后才能访问

Posted

篇首语:人老心不老,身穷志不穷。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 访问需登录后才能访问相关的知识,希望对你有一定的参考价值。

C#网站(二):访问需登录后才能访问  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

     在上篇笔记中 描述了在C#中如何使用HttpWebRequest HttpWebResponse登录简单网站 但如果用同样的方法去访问一个需要登录后才能访问的页面 会出现什么结果呢?让我们先来尝试一下!    尝试一 在上篇笔记中 创建了一个用于测试的简单网站 其中LoginSuccess aspx页面是需要登录后才能访问的(没登录的用户访问该页面 会被重定向到default aspx页面) 这里我们调用GetHtml( x )来直接访问LoginSuccess aspx页面 同时用HTTP Analyzer抓包 (图一)    从抓包截图(图一)上可以看到 当程序访问LoginSuccess aspx页面时 被重定向到default aspx页面去了 证明不能直接访问     尝试二 那么是不是用程序先在defaul aspx中登录后在访问LoginSuccess aspx页面就OK了呢?我们再来尝试一下 调用GetHtml( x postData Method POST)登录 调用GetHtml( x )访问LoginSuccess aspx页面 (图二)    图二是第二次尝试中庸HTTP Analyzer抓包的截图 程序在Default aspx中登录成功后 自动跳转至LoginSuccess aspx 程序在登录成功后 访问LoginSuccess aspx页面 被重定向到Default aspx 看来这次的尝试又失败了     然道没办法在程序中访问需登录后才能访问的页面了吗?答案是否定的!那么该如何实现呢?在实现前 有一些基础知识是要先了解的
以下文字转自深蓝的博客文章《使用C#实现网站用户登录》

  HTTP协议是一个无连接的协议 也就是说这次对话的内容和状态与上次的无关 为了实现和用户的持久交互 网站与浏览器之前在刚建立会话时将在服务器内存中建立一个Session 该Session标识了该用户(浏览器) 每一个Session都有一个唯一的ID 第一次建立会话时服务器将生成的这个ID传给浏览器 浏览器在接下来的浏览中每一个发向服务器的请求中都将包含该SessionID 从而标识了自己的身份

    哈哈 原来是Cookie的原因啊!看来我们只需在访问需登录的页面时把该网站对应的Cookie带上就OK了 这里使用CookieContainer来保存Cookie     尝试三 给HttpWebRequest指定CookieContainer 登录并访问LoginSuccess aspx页面     以下是修改后的代码 CookieContainer cookieContainer = new CookieContainer(); // 声明CookieContainer对象// 登录网站HttpWebRequest loginHttpWebRequest = (HttpWebRequest)HttpWebRequest Create( x );loginHttpWebRequest CookieContainer = cookieContainer; // 给HttpWebRequest指定CookieContainerbyte[] byteRequest = Encoding Default GetBytes(postData);loginHttpWebRequest ContentType = contentType;loginHttpWebRequest Referer =  x ;loginHttpWebRequest Accept = accept;loginHttpWebRequest UserAgent = userAgent;loginHttpWebRequest Method =  POST ;loginHttpWebRequest ContentLength = byteRequest Length;Stream stream = loginHttpWebRequest GetRequestStream();stream Write(byteRequest    byteRequest Length);stream Close();loginHttpWebRequest GetResponse();// 访问LoginSuccess aspxHttpWebRequest WebRequest = (HttpWebRequest)HttpWebRequest Create( x );;= cookieContainer; // 给HttpWebRequest指定CookieContainer();     下图是抓包截图 (图三)    注意和图二的区别 少了个 这就说明 程序成功访问了需登录后才能访问的页面LoginSuccess aspx     点击下载示例代码(VS ) cha138/Article/program/net/201311/13858

相关参考

知识大全 如何设置mysql允许外网访问

  mysql的root账户我在连接时通常用的是localhost或公司的测试服务器上的mysql也是localhost所以我想访问无法访问测试暂停  解决方法:  修改表登录mysql数据库切换到m

知识大全 王者荣耀助手怎么才能对别人隐身访问

用王者荣耀助手怎么才能对别人进行隐身访问?不能王者荣耀助手战绩隐可以隐藏,必须是新版本才可以关闭战绩的,之前的不行。查看最近比赛,旁边有一个小锁,点击一下小锁你就会隐藏掉自己的战绩了,别人也无法看见。

CPU能直接访问存储在内存中的数据,也能直接访问存储在外存中的数据

CPU能直接访问存储在内存中的数据,也能直接访问存储在外存中的数据。_____答案:错误解析:CPU只能直接访问内存中的数据,外存中的数据必须调人内存后,才能被访问。故本题判断错误。

知识大全 如果对方的QQ空间设了访问权限,我怎么才能看到他的空间呢

如果对方的QQ空间设了访问权限,我怎么才能看到他的空间呢  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 ASP不用DSN访问数据库

另类:ASP不用DSN访问数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一个DSN连接需

知识大全 nginx用cookie控制访问权限实现方法

自己的一个需求需要对ab下的/c这个目录下cookied=e才能访问如果不是就重定向到f下面看代码 代码如下复制代码server     &

知识大全 请问申请到工作类签证(访问学者)后应该在多长时间内赴加拿大

请问申请到工作类签证(访问学者)后应该在多长时间内赴加拿大?在签证有效期内。访问学者从申请签证到拿到签证多长时间具体情况,具体分析。要看申请什么国家的访问学者签证。还要看是什么时候提交签证,以及具体的

知识大全 建立了分区表后如果访问表中数据

  Quote:  对一张表建立了分区后在访问表中数据时是如何操作的  answer:  普通表呢像一个小学生用的新华字典分区表呢像一套博士们辞海在同一个漂亮的盒子里面(表名)有若干本辞海分册(每一册

新中国成立后,第一位到中国访问的美国总统是

新中国成立后,第一位到中国访问的美国总统是_____。A、罗斯福B、杜鲁门C、尼克松D、基辛格答案:C解析:20世纪60年代末,美国总统尼克松入主白宫后想通过改善中关关系,开展“均势外交”,增强美国对

知识大全 )无法访问网际网路

索尼手机z5为什么上面wifi会显示(!)无法访问网际网路?开机后连线WiFi;开启设定,进入使用者选单,建立新使用者;系统提示需要网路连线,一直点下一步,让手机连线网路;当进行到正在联网时,强制关机