qq空间及邮箱 验证 码登录的 校验 方式及自动登录的解决方案

上传人:小** 文档编号:89126880 上传时间:2019-05-19 格式:DOC 页数:10 大小:27.50KB
返回 下载 相关 举报
qq空间及邮箱 验证 码登录的 校验 方式及自动登录的解决方案_第1页
第1页 / 共10页
qq空间及邮箱 验证 码登录的 校验 方式及自动登录的解决方案_第2页
第2页 / 共10页
qq空间及邮箱 验证 码登录的 校验 方式及自动登录的解决方案_第3页
第3页 / 共10页
qq空间及邮箱 验证 码登录的 校验 方式及自动登录的解决方案_第4页
第4页 / 共10页
qq空间及邮箱 验证 码登录的 校验 方式及自动登录的解决方案_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《qq空间及邮箱 验证 码登录的 校验 方式及自动登录的解决方案》由会员分享,可在线阅读,更多相关《qq空间及邮箱 验证 码登录的 校验 方式及自动登录的解决方案(10页珍藏版)》请在金锄头文库上搜索。

1、QQ空间及邮箱验证码登录的校验方式及自动登录的解决方案作者:水木发表于2010-07-1416:13原文链接阅读:7评论:0目前有很多的SNS社区或类SNS的网站,例如开心、51、校内等,但是发现大多数社区在邀请好友的时候都没有提供对QQ邮箱或者QQ空间好友列表获取的功能,不过似乎海内支持,但是网上相关QQ的文章还不是很多,希望这篇文章能给你带来一些帮助。QQ空间及邮箱登陆的校验方式:QQ空间及邮箱登陆的时候,用户输入的密码首先会被页面中的一段Js加密,然后加密过后的密码会加上验证码形成一个新的字串,接着这个新的字串被MD5(32位)加密,加密过后形成最终的密码,这就是我们为什么经常会发现我们

2、在提交的时候我们的密码框中的密码个数会增长的原因,接着在你提交的时候,当前的这个请求会将前一次获取验证码返回的set-cookie值加入到当前请求头的cookie中以保持验证码请求与当前请求的一致性,然后再一并将新的密码和用户名Post到QQ的服务器上去。好了,看了上面的QQ校验方式以后,我们再来看看怎样使用代码来登录QQ空间及邮箱来获取我们需要的好友和联系人。QQ空间及邮箱自动登录获取联系人的解决方案:QQ空间及邮箱登陆首先我们需要将用户输入的密码进行Js加密,但是我们在使用代码登录的时候我们并没有使用到浏览器,那我们怎样驱动Js呢?不用怕,在Java和.NET中都有相应的方式在服务器代码端

3、驱动JS,这里着重讲一下.NET的方法:首先到微软的网站上下载WindowsScriptControl,它是一个ActiveX(R)控件。下载安装完成后,新建一个C#应用程序项目,在解决方案资源管理器中选中引用节点,右键点击选择添加引用菜单,弹出添加引用对话框,单击浏览找到安装WindowsScriptControl的目录,选取msscript.ocx文件确定。那么在引用节点下会增加一个MSScriptControl组件,下面是他Interop后的所有对象。!-if!vml-!-endif-ScriptControl对支持ActiveX(TM)Script的宿主Script引擎提供简单接口。接

4、下来我们对被转化成ScriptControlClass类的ScriptControl的属性和方法进行一些说明。属性AllowUI属性:应用于ScriptControl本身或Scirpt引擎显示的用户界面元素,可读写。CodeObject属性:返回对象,该对象用于调用指定模块的公用成员。只读。Error属性:返回Error对象,其中包含所发生的最后一个错误的相关详细信息。只读。Language属性:设置或返回正在使用的Script语言名称。可读写。Modules属性:为ScriptControl对象返回模块集合。只读。Procedures属性:返回在指定模块中定义的过程集合。只读。SitehWn

5、d属性:设置或返回窗口的hWnd,通过执行Script代码,此窗口用于显示对话框和其他用户界面元素。可读写。State属性:设置或返回ScriptControl对象的模式。可读写。Timeout属性:设置或返回时间(毫秒),此时间后用户可选择中止Script代码的执行或允许代码继续执行。可读写。UseSafeSubset属性:设置或返回Boolean值,指明宿主应用程序是否有保密性要求。如果宿主应用程序需要安全控制,则UseSafeSubset为True,否则为False。可读写。方法AddCode方法:向模块添加指定代码。可多次调用AddCode方法。AddObject方法:使主机对象模型对

6、Script引擎可用。Eval方法:计算表达式并返回结果。ExecuteStatement方法:执行指定的语句。Reset方法:放弃所有已经添加到ScriptControl中的Script代码和对象。Run方法:运行指定过程。事件Error事件:出现运行时错误时,发生此事件。Timeout事件:当超出了Timeout属性指定的时间且用户在结果对话框中选定了End时,发生此事件。说明:AllowUI属性如果设置为false,则显示对话框之类的语句不起作用,如在VBScript中MsgBox语句,JavaScript中的alert等,并且如果执行的脚本超出TimeOut设置的毫秒数,也不会跳出超出

7、时间提醒的对话框,反之则相反;重新设置Language属性会清空AddCode加载的代码;对于TimeOut属性,发生超时时,ScriptControl检查对象的AllowUI属性,确定是否允许显示用户界面元素。为了使控件更容易使用,用ScriptEngine类封装一下,下面是完整代码:usingSystem;usingMSScriptControl;usingSystem.Text;namespaceScriptNameSpace/summary/脚本类型/summarypublicenumScriptLanguage/summary/JScript脚本语言/summaryJScript,/

8、summary/VBscript脚本语言/summaryVBscript,/summary/JavaScript脚本语言/summaryJavaScript/summary/脚本运行错误代理/summarypublicdelegatevoidRunErrorHandler();/summary/脚本运行超时代理/summarypublicdelegatevoidRunTimeoutHandler();/summary/ScriptEngine类/summarypublicclassScriptEngineprivateScriptControlmsc;/定义脚本运行错误事件publiceven

9、tRunErrorHandlerRunError;/定义脚本运行超时事件publiceventRunTimeoutHandlerRunTimeout;/summary/构造函数/summarypublicScriptEngine():this(ScriptLanguage.VBscript)/summary/构造函数/summary/paramname=language脚本类型/parampublicScriptEngine(ScriptLanguagelanguage)this.msc=newScriptControlClass();this.msc.UseSafeSubset=true;t

10、his.msc.Language=language.ToString();(DScriptControlSource_Event)this.msc).Error+=newDScriptControlSource_ErrorEventHandler(ScriptEngine_Error);(DScriptControlSource_Event)this.msc).Timeout+=newDScriptControlSource_TimeoutEventHandler(ScriptEngine_Timeout);/summary/运行Eval方法/summary/paramname=express

11、ion表达式/param/paramname=codeBody函数体/param/returns返回值object/returnspublicobjectEval(stringexpression,stringcodeBody)msc.AddCode(codeBody);returnmsc.Eval(expression);/summary/运行Eval方法/summary/paramname=language脚本语言/param/paramname=expression表达式/param/paramname=codeBody函数体/param/returns返回值object/returns

12、publicobjectEval(ScriptLanguagelanguage,stringexpression,stringcodeBody)if(this.Language!=language)this.Language=language;returnEval(expression,codeBody);/summary/运行Run方法/summary/paramname=mainFunctionName入口函数名称/param/paramname=parameters参数/param/paramname=codeBody函数体/param/returns返回值object/returnsp

13、ublicobjectRun(stringmainFunctionName,objectparameters,stringcodeBody)this.msc.AddCode(codeBody);returnmsc.Run(mainFunctionName,refparameters);/summary/运行Run方法/summary/paramname=language脚本语言/param/paramname=mainFunctionName入口函数名称/param/paramname=parameters参数/param/paramname=codeBody函数体/param/returns

14、返回值object/returnspublicobjectRun(ScriptLanguagelanguage,stringmainFunctionName,objectparameters,stringcodeBody)if(this.Language!=language)this.Language=language;returnRun(mainFunctionName,parameters,codeBody);/summary/放弃所有已经添加到ScriptControl中的Script代码和对象/summarypublicvoidReset()this.msc.Reset();/summary/获取或设置脚本语言/summarypublicScriptLanguageLanguagegetreturn(ScriptLanguage)Enum.Parse(typeof(ScriptLanguage),this.msc.Language,false);setthis.msc.Language=value.ToString();/summary/获取或设置脚本执行时间,单位为毫秒/summarypublicintTimeoutgetreturn0;/summary/设置是否显示用户界面元素/summarypublicboolAllowU

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号