【问题标题】:Need to use secure protocol for silverlight clientSilverlight 客户端需要使用安全协议
【发布时间】:2011-04-22 00:12:59
【问题描述】:

我编写了一些 WCF 应用程序 - (使用 IIS 7)。 连接到该服务的客户端是我在 silverlight 中开发的。

我希望能够让我编写的客户端访问该服务并使用它 => 如果其他客户端将尝试访问该服务(没有用户名 +密码)服务将忽略他。

我该怎么做?

感谢您的帮助。

【问题讨论】:

    标签: silverlight wcf security authentication


    【解决方案1】:

    问题是 Silverlight 中当前的功能集是有限的,所以要走的路是 Windows 身份验证,这在 Internet 上不起作用:

    <bindings>
      <binding name="authenticatedBinding">
        <security mode="TransportCredentialOnly"> <!-- or Transport in case of HTTPS -->
          <transport clientCredentialType="Windows" />
        </security>
      </binding>
    </bindings>
    

    在处理时将用户名和密码验证为 Windows 帐户的基本身份验证(here is some article 关于强制基本身份验证以针对自定义凭据存储进行验证):

    <bindings>
      <binding name="authenticatedBinding">
        <security mode="TransportCredentialOnly"> <!-- or Transport in case of HTTPS -->
          <transport clientCredentialType="Basic" />
        </security>
      </binding>
    </bindings>
    

    或用户名令牌,可以通过自定义密码验证器或成员资格提供者进行验证。缺点是 Silverlight 仅通过 HTTPS 支持此功能:

    <bindings>
      <binding name="authenticatedBinding">
        <security mode="TransportWithMessageCredential"> 
          <transport clientCredentialType="None" />
          <message clientCredentialType="UserName" />
        </security>
      </binding>
    </bindings>
    

    换句话说:如果您需要安全协议,那么 HTTPS 是唯一的选择。如果您只需要通过 HTTP 对客户端进行身份验证,并且将用户名和密码作为纯文本传递没有问题,则可以尝试使用自定义凭据存储进行基本身份验证。任何其他情况都需要您构建自己的自定义解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-19
      • 1970-01-01
      相关资源
      最近更新 更多