使用C#实现网站用户登录

news/2024/5/9 11:33:12/文章来源:https://blog.csdn.net/weixin_34262482/article/details/90663542

我们在写灌水机器人、抓资源机器人和Web网游辅助工具的时候第一步要实现的就是用户登录。那么怎么用C#来模拟一个用户的登录拉?要实现用户的登录,那么首先就必须要了解一般网站中是怎么判断用户是否登录的。

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

服务器上是使用内存来保存Session中的信息,那么浏览器又使用什么来保存服务器分配的这个SessionID了?对,是Cookie。在刚建立会话时浏览器向服务器的请求中将不包含SessionID在Cookie中,服务器就认为是一个全新的会话,从而在服务器上分配一段内存给该Session用,同时将该Session的ID在Http Header中使用Set-Cookie发送给浏览器。

现在原理已经搞清楚了,那么我们就来实现一个网站的登录嘛,这里就以盛大纵横天下的登录为例。

要写这种面向协议的网络程序,抓包工具是少不了的,我们首先是要使用抓包工具分析在普通浏览器中登录时发送和接收的内容才好进一步使用C#来模拟浏览器发包。抓包工具很多,看个人爱好吧,我主要用的是HTTP Analyzer,专门针对HTTP的,太强的抓包工具把什么协议的包都抓出来反而不利于我们分析。

1.最好能清除IE的所有Cookie记录,以免对抓包分析造成影响,然后开启抓包程序。

2.在IE中输入http://zh.sdo.com/web1.0/home/fastlogin.asp 这个快速登录地址,我们将看到已经抓到了很多请求和响应的包。

3.输入用户名和密码,点击登录,IE中正常登录,停止抓包,我们要的所有信息都被抓取好了。如图:

image

4.盛大的登录机制还是属于比较复杂的,中间涉及到好几个服务器,经过分析得知(这个就是一个比较漫长的过程了,具体网站具体分析,这个分析过程我就不写了)纵横天下的登录机制为:

1)IE请求https://cas.sdo.com:80/cas/login?service=http://zh.sdo.com/web1.0/home/index.asp页面,该页面给IE一个SessionID,比如Set-Cookie: ASP.NET_SessionId=avcbse55l5e03suqi4dx3555; path=/

2)IE同时在该HTTP的正文中得到一个ticket,这个ticket将在登录中有用,当然其他网站肯定不是这样做的,这里分析的是纵横天下的。location.href    =    http://www.sdo.com/login2.asp?lt=sd-1420e593-d2cf-4c9c-b249-07fe27932a21-2008-05-06_01%3a25%3a41.484&service=http%3a%2f%2fzh.sdo.com%2fweb1.0%2fhome%2ffastlogin.asp%3ftest%3d1; 这里lt参数就是我说的ticket了。

3)将获得的lt、用户名、密码还有一些其他的无关紧要的参数都Post到https://cas.sdo.com:80/cas/Login.PostTarget.aspx?service=http://zh.sdo.com/web1.0/home/fastlogin_after.asp中,具体抓到的Post的数据如:warn=false&_eventId=submit&idtype=0&gamearea=0&gametype=0&challenge=3623&lt=sd-1420e593-d2cf-4c9c-b249-07fe27932a21-2008-05-06_01%3A25%3A41.484&username=studyzy&password=1234&ekey=&challenge=3623,这里我们就只关心lt,username,password这三个参数。

4)获取一个只有登录後才能访问的页面,测试是否登录成功。

5.好,整个登录机制我们已经分析完了,接下来就是考虑代码的实现了。在面向HTTP协议上,C#中有WebRequest、WebResponse、HttpWebRequest和HttpWebResponse等类。我们主要就基于这些类进行操作,当然完全基于Socket编程也可以,但是这里就没有这个必要了。

在不设置Cookie、PostData的情况下要获得一个页面的HTML的方法很简单:

public static string GetHtml(string URL)
        
{
            WebRequest wrt;
            wrt 
= WebRequest.Create(URL);
            wrt.Credentials 
= CredentialCache.DefaultCredentials;
            WebResponse wrp;
            wrp 
= wrt.GetResponse();
            
return new StreamReader(wrp.GetResponseStream(), Encoding.Default).ReadToEnd();
        }
 

 

当需要获得服务器返回的Cookie的话,可以通过wrp.Headers.Get("Set-Cookie")方法来获取。

如果需要将Cookie加入到请求另外还Post数据的话其实也很简单,只需要将httpWebRequest对象中设置ContentLength 和Request的Stream就可以了。

httpWebRequest.ContentLength = byteRequest.Length;
Stream stream;
stream 
= httpWebRequest.GetRequestStream();
stream.Write(byteRequest, 
0, byteRequest.Length);
stream.Close(); 

 

代码我就不都贴出了,我做了一个Demo在附件中,大家有兴趣研究的可以看一下。 /Files/studyzy/LoginSdoDemo.rar

代码中实现了盛大账号的登录,其实纵横天下的登录还没有完成,接下来还有选择具体服务器,将ticket转到具体服务器上再进行验证,原理也是一样的,我这里就不再累述了。

成功登录后,接下来我们只需要每次发送请求是跟上该Cookie,服务器就认为是登录的用户在操作了,接下来就可以随便灌水、Download资源了,具体要做什么就大家自己弄了,只需要在IE中操作一篇,抓包分析出来,用C#实现同样的发包就OK!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_820705.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小网站架构优化:从100并发抗到4000并发

前言: 很久前,在512M内存Access的VPS里,写过了一个经典的秋色园技术原理解析系列。后来的某一天,换上了1G内存MSSQL2000,秋色园又跑过了一个多年头。之后,秋色园和 CYQ.Data,也在一直默默的优化…

【系统架构】大型网站架构系列:缓存在分布式系统中的应用(二)

原文地址 缓存是分布式系统中的重要组件,主要解决高并发,大数据场景下,热点数据访问的性能问题。提供高性能的数据快速访问。 本文是缓存在分布式应用第二篇文章,介绍分布式缓存,Memcache,Redis&#xff0c…

python 抓取小说网站,制作电子书。

分析目的(或者说要达到的效果) 实现一个小说下载器,输入小说的名字然后抓取小说的全部章节,制作成文档。 需要的知识:使用BeautifulSoup或正则解析网页,使用requests下载网页。 搜索小说 直接用小说的站内搜…

【转】最实用的IT类网站及工具大集合

转自:http://www.cnblogs.com/annie00/p/5753507.html 1.聚合数据 大家在开发过程中,可能会用到各种各样的数据,想找一些接口来提供一些数据。比如天气预报查询,火车时刻表查询,彩票查询,身份证查询等等。有…

大型网站架构演变和知识体系

from http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html 之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什…

关于动画培养灵感的网站

直接点解图片就能进入对应的国外的网站: 下面这个网站是视频播放的哦,挺好看的。 当然这个英文网站在国内也有翻译的blog:http://www.jianshu.com/p/1858a8733ba3

大型网站技术架构 大纲

本文内容大部分来自《大型网站技术架构》,这本书很值得一看,强烈推荐。网站系统架构层次如下图所示:1.前端架构前端指用户请求到达网站应用服务器之前经历的环节,通常不包含网站业务逻辑,不处理动态内容。浏览器优化技术并不是优化…

knewone最新分享购物网站模板

演示效果:http://www.erdangjiade.com/templates/390 效果图片:

DTCMS 网站管理系统

dtcms适合开发一些简单小型网站 开发的过程中遇见了各种问题,下面总结下我遇见的问题 1.遇见提示未开启生成静态功能 在系统设置里面将“伪URL重写”为“生成静态”可以解决 2.在生成静态页面的时候提示生成页面完成,但是右下角却显示失败 这个可能是在新…

oracle em 此网站,Oracle 11g em启动报此网站的安全证书有问题的解决方案

今天配置完Oracle 11gR2 em后,在IE中输入https://kermart:1158/em直接报错,打不开提示:“证书错误,此网站安全证书有问题”,在网上找了好久没有找到解决的方案,其中有人说要卸载win7的windows补丁3KKB26612…

商城模板网站html5手机端_网站建设商城模板设计排版不同,但不可缺少的重要板块都会有 - 企业建站...

有的企业建网站,是为了宣传产品、树立企业形象,此类多为建设企业官方网站;有的企业建网站,销售产品是根本,此类都建设商城网站。建设网站又有两种方法,一类模板建站,一类定制建站。对于网站建设…

list的contains方法为什么不好使_为什么你的网站优化效果不好?

当新手网站管理员优化他们的网站,他们不能总是产生良好的结果。是他们的优化方法使用不好,还是网站本身有问题,比如苏州网站优化,哪里有困难,为什么经常做不好,长期没有排名的网站,优化效果不好…

做网站用什么语言_外贸独立站卖家如何做多语言网站SEO?

在各国经济文化交流的频繁和跨境业务数量增长的背景下,想要实现海外营销,获得更多的关注和收益,外贸卖家们就必须针对目标市场进行网站的多语言优化,针对新的国家或地区进行策略的制定网站内容本地化,仅翻译网站内的文…

如何集成varnish到已有的网站架构

如何集成varnish到已有的网站架构 在我们现有的架构中通常是已经成熟稳定的架构,如何将高性能的缓存服务器部署在已有的环境上呢,同时部署容易,如何始终让用户看到的是最新的内容,即便是缓存命中的状态? 因此&#xff…

activemq 各种版本区别_响应式网站和PC+手机端网站有什么区别?

企业建站普遍会遇到这样一个选择难题:网站选择什么类型?常见的类型分为3种:PC端,PC手机端,响应式。PC端大家都知道,主要的选择难点是后两种有什区别。今天小编就帮大家来分析一下响应式网站和PC手机端网站的…

阿根廷最大社交网站Taringa遭遇大规模数据泄漏,超过2800万用户数据暴露

本文讲的是阿根廷最大社交网站Taringa遭遇大规模数据泄漏,超过2800万用户数据暴露,如果你有Taringa(也被称为“拉丁美洲的Reddit”)网站账号,那么请注意,你的账户详细信息可能已经在大规模数据泄漏事件中泄…

实现网站验证码切换功能

实现网站验证码切换功能 一、样例 样例1、 样例2、 二、实现原理 三、实现代码 com.fry.servlet.VerifyCodeServlet 1 package com.fry.servlet;2 3 import javax.imageio.ImageIO;4 import javax.servlet.ServletException;5 import javax.servlet.annotation.WebServlet;6 im…

从零开始编写自己的C#框架(25)——网站部署

导航 1、关掉访问保护 2、发布网站 3、复制网站到服务器 4、添加新网站 5、设置网站访问权限 6、设置文件夹访问权限 7、控制可更新文件夹执行权限 8、设置“应用程序池”.net版本与模式 9、附加数据库 10、添加数据库访问用户 11、设置数据库链接 12、部署注意事项 对于网站的…

linux系统怎么重启网络连接wifi密码,怎么查看linux连接wifi的密码?_网站服务器运行维护,linux,wifi...

如何使用外部硬盘安装linux系统?_网站服务器运行维护使用外部硬盘安装linux系统的方法:首先将格式化的U盘和固态硬盘连接到电脑上并按F9;然后从菜单选择U盘启动并按enter;接着按linux minit程序安装系统并选择中文;最后…

织梦网站调用变量失败_浙江栢塑科技解析织梦被挂马被黑解决流程

织梦被黑恶意挂马并不奇怪,本身织梦程序案例漏洞过多,如不做好安全更新或备份,造成数据丢失并影响排名。 一个SEOVIP同学遇到织梦的问题,接下来把处理的流程记录下来,帮助大家解决问题。 1,分析网站源码&am…