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

生成的配置文件会如下:

- <wsdl:service name="MemberService">
- <wsdl:port name="WSHttpBinding_IMemberService" binding="tns:WSHttpBinding_IMemberService">
  <soap12:address location="https://lanmang-avrx6mx/wcfservice/service.svc />
- <wsa10:EndpointReference>
  <wsa10:Address>https://lanmang-avrx6mx/wcfservice/service.svc</wsa10:Address>
  </wsa10:EndpointReference>
  </wsdl:port>
  </wsdl:service>
显然,显示的是本地证书的服务。这时我在客户端引用https://timp.dev.net/wcfservice/service.svc服务时就会报错,引用不了。“lanmang-avrx6mx”服务器电脑名称。
解决办法。找了很久,在国外网站的一篇贴子上,找到答案了,也就是得在IIS注册一下证书域名。我英文不好,不太会翻译,大家自已看吧:http://www.jstawski.com/archive/2008/05/01/wcf-wsdl-location-address-with-https.aspx

 

在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

好了就写到这里吧,希望对遇到上述问题的朋友能有所帮助!!!!

 


 

 

 

posted @ 2008-09-16 11:32  张宏宇  阅读(4407)  评论(6编辑  收藏  举报