仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 767|回复: 7
打印 上一主题 下一主题

[学习教程] ASP.NET编程:用程序登录Aps.Net页面

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:31:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
不可能天天有学习.net),我一同学说,你应该早就有作品啦。我惶惶然……程序|页面  在写Internet使用程序的时分,经常必要处置用户登录的情形。一样平常来讲,关于这类情形,我们是利用程序来摹拟用户在Web页面上填写用户名、暗码并提交的历程。当用户在Web页面上输出了用户名、暗码并提交以后,实践上是触发了一个POST哀求,在这个哀求中包括有效户名、暗码等信息。因而,我们只需在程序中将相干信息封装成一条POST哀求,并将它发送给WebServer,基础上就可以完成登录了。以MFC为例,上面的这段代码摹拟了一个登录历程:

  CStringstrHeaders=_T("Content-Type:application/x-www-form-urlencoded");

  //name="sam",password="123",action="submit"

  CStringstrFormData=_T("name=sam&password=123&action=submit");

  CInternetSessionsession;

  CHttpConnection*pConnection=

  session.GetHttpConnection(_T("ServerNameHere"));

  CHttpFile*pFile=

  pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST,

  _T("FormActionHere"));

  BOOLresult=pFile->SendRequest(strHeaders,

  (LPVOID)(LPCTSTR)strFormData,strFormData.GetLength());

  这个办法关于Asp页面很无效,但关于Asp.Net页面,偶然却不起感化,这是为何呢?

  为了弄清出Asp.Net页面在处置登录时与Asp页面有何区分,我们必要利用Sniffer工具来跟踪Web服务器与扫瞄器之间的通信。经由跟踪会发明,Asp.Net页面在用户提交登录信息以后,仍旧是利用POST哀求将相干信息发送给服务器。所分歧的是,处置用户名、暗码等信息以外还多了一个__VIEWSTATE。假如在下面代码中的strFormData中加上一个经由过程Sniffer失掉的__VIEWSTATE的话,就可以够乐成摹拟出全部登录历程了。接上去的成绩就是,我们应当怎样取得这个__VIEWSTATE呢?

  我们晓得,Asp.Net页面有一个ViewState属性,Asp.Net用它来保留页面的形态信息,以便在页面提交失利时,可以恢复页面的形态。它是经由过程页面中的一个埋没的域来界说的,假如经由过程扫瞄器来ViewSource的话,能够看到它是以下的一行代码

  它的value值恰是我们所必要的,我们只需从登录页面中剖析出这个__VIEWSTATE的value,我们的成绩就可以够失掉办理了。

  细心看一下,ViewState的值是经由编码的,先不论它,间接将它从页面中掏出,和登录信息一同构成POST哀求,发送给Server,了局怎样呢?失利了L。对照一下Sniffer的了局和页面中ViewState的value,我们会发明,它们之间仍是有些许分歧的。本来,页面源码中的ViewState值是经由Base64编码的,而当它被发送给WebServer时,为了包管传输的准确,扫瞄器会将它转换成URL编码,当WebServer吸收到ViewState以后,固然会先将它从URL编码解码为Base64编码再交给Asp.Net处置。看来我们必要将ViewState的值在举行一边URL编码处置,如许就可以够乐成摹拟全部登录历程了J。

  参考

  1.HOWTO:SimulateaFormPOSTRequestUsingWinInet,微软的KB文章,形貌了摹拟POST哀求的完成。

  2.ASP.NETMaintainingtheViewState,ViewState的进门常识。

  3.ViewState:AllYouWantedtoKnow,关于ViewState的深切会商。

  4.ViewStateParser,想看看解码后的ViewState是甚么模样吗?尝尝这个Parser。

  5.博客厅中的相干会商,这是我在办理这个成绩的过程当中,在博客厅写的Blog。你觉得数据库怎么样?
透明 该用户已被删除
沙发
发表于 2015-1-18 07:53:22 来自手机 | 只看该作者
是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。
因胸联盟 该用户已被删除
板凳
发表于 2015-1-21 13:39:28 | 只看该作者
使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
老尸 该用户已被删除
地板
发表于 2015-2-6 15:19:07 | 只看该作者
使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
再现理想 该用户已被删除
5#
发表于 2015-2-16 20:50:29 | 只看该作者
在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。
爱飞 该用户已被删除
6#
发表于 2015-3-5 09:31:16 | 只看该作者
能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。
海妖 该用户已被删除
7#
发表于 2015-3-12 03:03:47 | 只看该作者
网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!
简单生活 该用户已被删除
8#
发表于 2015-3-19 17:51:15 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 03:41

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表