none
silverlight与wcf通讯,如何安全实现用户名密码身份验证? RRS feed

  • 问题

  • 查看了一些资料,大部分提到x509,但那个需要服务器证书,比较麻烦,有没有其它轻量级的做法?
    如有示例程序则更佳。

    2009年6月15日 9:58

答案

全部回复

  • 查看了一些资料,大部分提到x509,但那个需要服务器证书,比较麻烦,有没有其它轻量级的做法?
    如有示例程序则更佳。

    HI,
       WCF提供了多种身份验证机制:
    1.无验证;
    2.Windows验证;
    3.用户名、密码,这个可以后台调用你自己的密码验证机制,验证通过,在执行服务调用。
    4.X509,证书,客户端请求的时候,使用此证书,加密发送请求数据,服务端验证通过就执行服务调用;
    5.Token,利用CardSpace。
       给你建议的是方式3,一般这个事最简单的,你也可以搜索很多WCF安全的文章。我目前还没写WCF安全的文章。
    其实WCF的安全基本都是借助以前的安全机制来实现的。WSE3.0实现Web 服务安全的,我写了文章,你有兴趣的话可以看看。
    基本安全的实现机制都提到了,

    3.《WSE3.0构建Web服务安全 》:  

    WSE3.0构建Web服务安全(4):MTOM消息传输优化和文件上传、下载

    WSE3.0构建Web服务安全(3):WSE3.0策略配置、证书、签名、与实例开发
    WSE3.0构建Web服务安全(2):非对称加密、公钥、密钥、证书、签名的区别和联系以及X.509 证书的获得和管理
    WSE3.0构建Web服务安全(1):WSE3.0安全机制与实例开发
       以后准备了WCF 安全的文章在发上来~


    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://www.cnblogs.com/frank_xl
    2009年6月15日 14:21
    版主
  • Frank Xu Lei:
    您好。

    我需要的就是您所指出的第三种验证方式。能不能详细谈一下这种验证方法?
    2009年6月15日 15:40
  • Frank Xu Lei:
    您好。

    我需要的就是您所指出的第三种验证方式。能不能详细谈一下这种验证方法?

    1. Hi,
          我初步看了一下。这个过程和WSE3.0构建Web服务安全(1):WSE3.0安全机制与实例开发很类似。是客户端使用一个类,例如:
      1)客户端:ServiceReference1.Service1Client sc = new WebApplication1.ServiceReference1.Service1Client();
    2.             sc.ClientCredentials.UserName.UserName = "FrankXu";
    3.             sc.ClientCredentials.UserName.Password = "11111111";

    2)服务端:应该是继承一个契约,重写Validate(string userName, string password)方法,这个WCF框架会自己进行密码的验证:public override void Validate(string userName, string password)

  •         {
  •             if (userName != "FrankXu" || password != "11111111")
  •             {
  •                 throw new SecurityTokenException("Unknown Username or Password");
  •             }
  •         }
  •   
  •     这个方式和WSE3.0的密码验证机制几乎一样,没多大区别。你可以看看我推荐给你的文章。有助于你理解这个过程。
  • 另外WCF用户密码验证的过程,你可以参考这个文章:http://blog.csdn.net/jacle169/archive/2008/10/29/3171434.aspx。记住不使用证书就可以了。你有什么问题我们在交流~
  •    以后我会出个WCF安全的文章吧~应该也会写出代码。

Frank.Xu Lei--谦卑若愚,好学若饥
专注于.NET平台下分布式应用系统开发和企业应用系统集成
Focus on Distributed Applications Development and EAI based on .NET
老徐的博客:http://www.cnblogs.com/frank_xl
2009年6月15日 15:57
版主
  • silverlight的WCF好像不支持这个吧

    2009年9月25日 4:42
  • sl只支持basichttpbinding,这个用username验证一直没调通,版主能否给个例子,谢谢!
    2009年11月12日 8:44
  • 你好, SilverLight 不支持wsHttpBinding, 在BasicHttpBinding下是否有类似于X509(Server), UserName+Password的验证方式呢?
    2009年12月31日 3:34
  • 这个可以参考我的文章 2010年1月26日 Silverlight+WCF的安全考虑1(紧接上文:Silverlight3+wcf+在不使用证书的情况下自定义用户名密码验证) http://www.cnblogs.com/virusswb/archive/2010/01/26/1656543.html Silverlight3+wcf+在不使用证书的情况下自定义用户名密码验证 http://www.cnblogs.com/virusswb/archive/2010/01/25/1655748.html
    2010年1月26日 3:48