WCF,SSL,UserName,用户名密码验证和https
最近使用WCF开发了一个项目,对于WCF技术,这里就不多写了,基础知识园子里的文章有很多不错的有!
http://www.cnblogs.com/jillzhang/archive/2008/04/19/1161423.html
http://www.cnblogs.com/yjmyzz/archive/2008/08/22/1272836.html
好了闲话少说,我就写一些我开发是遇到的问题吧,这两个问题整了好几天,才搞定。本文章讲一下我的项目关于安全。
我的项目采用IIS为宿主,安全传输https +UserName验证。
关于这些基础的知识,在上面这两篇文章就好了很详细, 在此也感谢这两篇文章的楼主的分亨。
一,WCF在IIS中使用Https,在这里我遇到了一个问题,就是WCF引用问题。
在服务器中IIS证书配置完成。
在服务器的,IE中测试服务,https://timp.dev.net/wcfservice/service.svc ,但在,网页中确显示,
已创建服务。
若要测试此服务,需要创建一个客户端,并将其用于调用该服务。可以使用下列语法,从命令行中使用 svcutil.exe 工具来进行此操作:
svcutil.exe https://lanmang-avrx6mx/wcfservice/service.svc?wsdl
生成的配置文件会如下:
在DOS下使用adsutil.vbs 函数注册域名:命令如下:
%systemroot%\system32\cscript.exe //nologo %systemdrive%inetpub\adminscripts\adsutil.vbs set /w3svc/<website id>/SecureBindings ":443:<host header>"
参数说明:
%systemroot%\system32\cscript.exe //nologo :是一个命令工具吧。
%systemdrive%inetpub\adminscripts\adsutil.vbs :是adsutil.vbs函数路径。
<website id>:网站在IIS中的标识。
<host header>:是绑定SSL证书的域名。
二 SSL+UserName
上面的就解决了SSl问题,下面讲一下我第二问题,我要使用HTTPS同时还要使用户名和密码验证。验证过程园子里都有文章我就不写了,写下在配置文件结合配置代码如下:
<bindings>
<wsHttpBinding>
<binding name="MemberServiceBinding">
<security mode="TransportWithMessageCredential">
<message clientCredentialType="UserName"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
这样就可以了,参考文章,不错的,
http://msdn.microsoft.com/zh-cn/vstudio/ms789011.aspx
http://www.theserverside.net/tt/articles/showarticle.tss?id=SecuringWCFService
好了就写到这里吧,希望对遇到上述问题的朋友能有所帮助!!!!