winform下利用webBrowser执行javascript
目前很多网站为了防止恶意提交表单信息,大多都采用了加密的方式对提交信息进行处理,加密处理后通过POST提交给服务器验证,这种操作一般都是用Javascipt进行加密,若是我们想要正确提交表单到网站,就需要对javascipt的加密操作进行模拟。那么我们同样可以利用WebBrowser来执行JS脚本,达到加密的目的。
url: "/portal/web/SmsRandomSendAction.do",
dataType: "json",
type: "POST",
data: {
"loginName": strEnc(loginName,"1234567","",""),
"type": type
},
success: function(json){
if (json.ret == 1) {
ranpastor.showMessage("两次发送下载短信间隙不能小于1分钟");
ranpastor.disabled(); //超出限制次数不能再次发送,不能发送
return;
}
if (json.ret == 0) {//确认发送短信秘密成功,可以短输入信秘吗,60秒后可再次发送
ranpastor.disabled();//失效
ranpastor.startAutomaticavAilable();//启动自动恢复有效状态
var message = "验证码已发出,如您"
message += '<span id="resend_time_count">'+ranpastor.disabledTime+'</span>';
message +="秒还没有收到,请点击按钮重新获取";
ranpastor.showMessage(message);
} else {//发送失败,可重新发送
var message = json.message || "发送失败!"
if (json.ret == 5) {
message = '您今天下发短信密码的次数超过最大短信密码下发次数,请使用最近一次您收到的短信密码,或者使用固定密码方式登录, 如果不记得固定密码, 请使用您的手机发送短信"CZMM"到"10658800",系统会自动为您下发新的固定密码到您手机上,谢谢您的支持!'
}
ranpastor.available();
ranpastor.showMessage(message);
}
return false;
}
<html>
<head>
<script type='text/javascript' src='http://mm.10086.cn/moneditor/cs/include/js/common/core/core.js'></script>
<script type='text/javascript'>
function getPwd(phoneNum) {
var result=strEnc(phoneNum,'1234567','','');
return result; }
</script>
</head>
<body></body>
</html>
先将窗口类设置为COM可访问
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public partial class FrmDemo : Form
然后将之前我们写好的js代码放到WebBrowser里。
webBrowser1.DocumentText="<html> <head> <script type='text/javascript' src='http://mm.1008.cn/moneditor/cs/include/js/common/core/core.js'></script> <script type='text/javascript'> function getPwd(phoneNum) { var result=strEnc(phoneNum,'1234567','',''); return result; } </script> </head> <body> </body> </html>";
webBrowser1.Document.InvokeScript("getPwd", new object[] { "18780110000" })
会返回一个object的值,函数中返回的一定是一个加密后的字符串,将它转换为string就可以了。

注意一下,不要将调用代码写在Form_Load事件里面。
来源:http://www.cnblogs.com/Dersoul/archive/2011/11/27/2265142.html
winform下利用webBrowser执行javascript的更多相关文章
- Winform 下使用WebBrowser的HTML编辑控件—WinHtmlControl 在win7 IE9下的问题
问题是这样的,有一个需要用到富文本的地方,由于是winform的程序,而且程序是上一代老员工留下的,错误百出,现在要尽量修复,至少保证能正常使用,于是就开始一点点问题修复. 在win7 64位系统下出 ...
- C#中winform下利用ArcEngine调用ArcGIS Server发布的服务 AE9.3
主要使用了AE中的IAGSServerOject接口及IMapServer接口.Private void GetServerTest_Click(object sender, EventArgs e) ...
- C#中winform下利用ArcEngine调用ArcGIS Server发布的服务 AE 10
开发环境:vs2010 + AE 10 测试 public Form1() { ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engi ...
- 在WebBrowser中执行javascript脚本的几种方法整理(execScript/InvokeScript/NavigateScript) 附完整源码
[实例简介] 涵盖了几种常用的 webBrowser执行javascript的方法,详见示例截图以及代码 [实例截图] [核心代码] execScript方式: 1 2 3 4 5 6 7 8 9 1 ...
- Winform下CefSharp的引用、配置、实例与报错排除(源码)
Winform下CefSharp的引用.配置.实例与报错排除 本文详细介绍了CefSharp在vs2013..net4.0环境下,创建Winfrom项目.引用CefSharp的方法,演示了winfro ...
- C#执行javascript代码
最近在做网站自动登陆小工具,遇到技术屏障.密码在submit时会使用js进行加密.这时我需要模拟这个加密过程,想到使用C#执行javascript代码. 对于执行javascript代码,纯代码方式使 ...
- winform下重画ListBox
Windows Forms是由Win32 API封装的开发组件,最初是为了替代mfc,但却没有体现与Model View Controller架构对应的特色,进而在.net framework 3.0 ...
- C/S模式开发中如何利用WebBrowser控件制作导航窗体
原文:C/S模式开发中如何利用WebBrowser控件制作导航窗体 转自: CSDN 相信不少同学们都做过MIS系统的开发,今天这里不讨论B/S模式开发的问题.来谈谈winform开发.用过市面上常见 ...
- 利用webBrowser获取框架内Html页面内容
原文:利用webBrowser获取框架内Html页面内容 利用webBrowser获取页面比较简单,MSDN下有示例,在这里不必多说. 可是一些 HTML 文档由“框架”构成,或可以存放它们自己独特 ...
随机推荐
- Windows下 训练Tesseract实现识别图片中的文字
介绍 Tesseract是一个基于Apache2.0协议开源的跨平台ocr引擎,支持多种语言的识别,在Windows和Linux上都有良好的支持. 源代码在这: 源码地址 有一个编译打包好的Windo ...
- Windows 2016 无域故障转移群集部署方法 超详细图文教程 (二)
上一章我们配置了一台设备,接着根据那个配置,配置其它设备.这里我配置了三台设备: 创建故障转移群集,并添加设备. 之前的操作都是每台服务器都要做的,而这个操作,只需要任选一台去做即可,我这里选d1 1 ...
- Vue学习记录(一)
一.引入js文件(直接采用CDN): http://cdnjs.cloudflare.com/ajax/libs/vue/1.0.26/vue.min.js 二.简单实例: (1)HTML代码: &l ...
- log4js 2.X版本配置详解
const log4js = require('log4js'); log4js.configure({ appenders: { cheese: { type: 'file', filename: ...
- 【Selenium-WebDriver自学】WebDriver交互代码(十一)
==================================================================================================== ...
- 最简单的DHCP服务
这几天在准备网络安装linux操作系统.最后决定用pxe + kickstart 的方式完成.原理.方案弄完了之后,开始搭建,结果被DHCP给挡住了.这不就得研究研究最简单最实用的DHCP使用方法. ...
- 推荐算法 pd
from django.db import connection select_sql = 'select * from model' datas = pd.read_sql(select_sql, ...
- python协程的使用
1.Python对协程的支持是通过generator(生成器 yield)实现的.协程执行过程中,在子程序内部可中断,然后转而执行别的子程序,在适当的时候再返回来接着执行. 2.调用生成器运行的过程中 ...
- activiti explorer5.22.0源代码解读
请求通过ExplorerApplicationServlet(AbstractApplicationServlet.service()方法)进入web系统中. Activiti Explorer的应用 ...
- oracle TDE
转自:oracle TDE学习系列 (1) — wallet 使用管理 关于oracle wallet,通常称为oracle钱夹,说的通俗一点,oracle wallet是一个用 口令加密的PKCS# ...