过vs3.0的vs全图工具具

软件按字母搜索:
中文按声母搜索:在VS2008中使用WSE 3.0过程全记录 - 陈希章 - 博客园
WSE全称是Web Service Enhancement,提供了更好的安全性实现,以及大对象传输的设计。 有关WSE的一些介绍,如果不清楚,可以参考下面的链接
官方介绍: 下载位置: & 这两天讲课中又提到了WSE。现在我们用的是VS2008,与之前VS2005还有一点不一样。所以,今天我再次将使用步骤做一个完整的记录 & 第一部分:准备*** WSE是需要***的。***是用来对消息进行加密和签名的。作为测试目的,可以通过makecert这个工具来做
我自己写了一个bat文件,内容如下 & REM 这个脚本用来创建一个测试的***
REM 作者:陈希章
set CERTNAME=TestServiceCertcertmgr -del -r LocalMachine -s My -c -n %CERTNAME%makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=%CERTNAME% -sky exchange -peset WP_ACCOUNT=NETWORK SERVICE(ver | findstr "5.1") && set WP_ACCOUNT=%COMPUTERNAME%\ASPNETwinhttpcertcfg -g -c LOCAL_MACHINE\My -s %CERTNAME% -a "%WP_ACCOUNT%" REM 授予IIS帐号对该***的访问权限iisresetpause
& 红色的部分,你可以修改成自己想要的名称 创建好***之后
& 第二部分:创建和配置服务 1. 创建服务。 【注意】经过反复测试,必须使用网站模板,而不是项目模板创建Web Service
& 2. 在服务项目中,添加对Microsoft.Web.Service3.dll的引用
【备注】该程序集的位置在
3. 通过Configuration Tool配置服务。在VS2005的时候,这个工具可以集成到IDE中。而VS2008则不可以
选择”File”==》“Open”
在General页面中选中两个选项
在Security页面,注意选中Allow Test Root,因为我们用的***是一个测试的,不受信任的。
在Policy页面,启用Policy
下面,我们准备创建一个策略。点击”Add” & 输入一个名称,然后点击”OK”
这向导的这个页面,选择”Secure a Service Application”, 并且选择客户端验证方法为”UserName”(这种方式其实使用服务器的Windows帐号作为凭据的)
这个页面可以做授权(Authorization)。我们这里不做指定
这个页面我们保留所有默认值
这个页面中点击”Select Certificate” ,
选择我们刚才创建的***:TestServiceCert, 然后点击“确定”
点击“Finish”,即可完成所有的配置 完成之后,选择”File” ==》“Save”来保存配置
& 然后,可以关闭Configuration Tool,回到Visual Studio环境中。这个Service很简单,我们也不准备做任何修改。
点击“显示所有文件”这个按钮,我们会发现多了一个文件:wse3policyCache.config
选择该文件,点击右键,选择”包含在项目中”
双击打开该文件。这是一个附加的配置文件,我们刚才所做的配置都记录在该文件中。
我们还可以双击Web.config,看看有什么变化
4. 在服务上面应用策略 完成了策略配置之后,接下来我们就是为服务应用策略了。 转到Service1.asmx.cs文件
到这里为止,服务端的配置就完成了。此时,请编译项目。(Ctrl+Shift+B)
接下来我们需要创建客户端进行测试 & 第三部分:创建客户端并且进行测试 1. 在解决方案中添加一个Windows Forms应用程序
2. 添加Web Service引用
点击“此解决方案中的Web 服务”
点击“Service1”
点击“添加引用”
3. 编写代码访问HelloWorld方法
& 4. 运行Client程序,进行调试 将Client项目设置为启动项目
然后,按F5键进行调试
点击“调用服务”,我们会遇到一个异常,如下
为什么会出现这样的异常呢? 原因很简单:服务器端已经启用了WSE,而客户端并没有启用。所以,接下来,我们得完成客户端的配置 & 5. 运行configuration Tool对客户端进行配置。 通过”File” =&”Open”打开Client项目的app.config
General页面中只能选中第一个选项。
Security页面中照样要选中“Allow test roots”
Policy页面中启用Policy后,点击“add”
输入名称,点击“Ok”
这个页面中选择“Secure a client application”,并且设置验证方法为”UserName”
保留默认值,在代码中指定用户的凭据
保留默认值
【注意】这里要选择与服务器相同的***。点击Next,然后点击Finish &
最后,完成保存后关闭Configuration Tool 回到Visual Studio之后,将wse3policyCache.config文件包含到项目中
并且设置该文件的属性。复制到输出目录
6. 在Client项目也添加对Microsoft.Web.Service3.dll的引用
7. 修改Web引用的代理文件
双击Reference.cs
添加一个using语句。并且将Service1这个类的基类修改为WebServiceClientProtocol.保存该文件,重新编译 8. 修改窗体代码
9. 再一次进行调试。我们就可以正常看到一个对话框
& & 第四部分:查看加密的消息。
我们知道现在的消息是通过***加密的,但事实上是不是真的加密了呢?我们可以通过Configuration Tool再次打开客户端的配置文件app.config
在Diagnostics页面,Enable Message Trace
然后保存该文件。重新调试客户端。此时会生成两个文件。
我们可以打开InputTrace.webinfo看一下。在SOAPBody里面的内容已经经过了加密
SOAPHeader里面包含了我们的用户名和密码,毫无疑问,也是经过了加密的
& 第五部分:使用自定义的UserNameTokenManager
上面的例子很成功,但目前它所使用的用户凭据是Windows凭据。如果我们想自定义身份验证,应该怎么办呢?
1. 创建自定义的UserNameTokenManager.
我们可以创建一个单独的类库项目
在该项目中,添加对Microsoft.Web.Service3.dll的引用
创建一个类型,代码大致如下
编译该项目。
& 2. 在服务项目中添加上述程序集的引用
3. 重新用Configuration Tool对服务的Web.config进行配置。定位到“Security”页面
在Security Tokens Managers的位置,点击”Add”
在Built in Token Managers中选择“UserNameTokenManager” & & 将Type修改为
MyUserNameTokenManger.MyUserNameTokenManger,MyUserNameTokenManger
保存修改之后,在web.config中可以发现下面的变化 &securityTokenManager&& &add type="MyUserNameTokenManager.MyUserNameTokenManager,MyUserNameTokenManager" namespace=" localName="UsernameToken" /& 注意,红色的部分一定不要去更改,否则就是无法成功。没有什么理由,但我也为此耗费了几个小时。 &/securityTokenManager& 4. 重新调试客户端 客户端的配置和代码无需任何更改 如果正确地提供了密码,则会返回”Hello,world”,否则,会返回下面的错误
应该用try…catch的方式,捕捉到该异常之后,通知用户检查用户名和密码刷机大神 
刷机大师 
商  务 
刷机讨论群
今天带来的是小米手机刷机工具miflash,这款救砖神奇,如果你所需的包里面看到的是MiFlash工具, ...
近几天,vivo对即将发布的新机进行了多次预热,新机vivo X9/X9 P...
没有绚丽的广告,没有铺天盖地的代言,魅族在秦皇岛北戴河海边这...
前段时间,oppo发布了自己的新机OPPO R9s,不久之后网上就传出了v...
热门手机刷机专区
软件名称: 快夺宝(中文名) KDB(英文名) 软件版本: raiders...
健康猫是一个与世界冠军共武的运动健康社交平台! 健康猫,让运...
如果你厌倦了91、豌豆荚之类的软件,百度手机助手是一个不错的选...
由科大讯飞推出的一款语音输入法,是全球首款基于云计算方式实现...
本月热门ROM
版本号: 1.04.1402.2 适应安卓版本: 4.1 本刷机包型号: HTC D...
品牌:三星GALAXY S6 区域/国家:中国 资料类型:线刷 型号:三...
这个是中兴N880S android 2.3.7 CM7稳定ROM ROM介绍:...
品牌:华为荣耀畅玩高配版 区域/国家:中国 资料类型...
热门刷机工具
最新刷机工具

参考资料

 

随机推荐