【问题标题】:Silverlight - How to consume a WCF service from the client with windows authenticationSilverlight - 如何通过 Windows 身份验证从客户端使用 WCF 服务
【发布时间】:2011-08-09 06:54:59
【问题描述】:

我有一个 silverlight 4 应用程序,我需要客户端使用一个使用 SSL 保护的 WCF 服务并使用 Windows 身份验证。只有特定 Active Directory 组的成员才能调用 WCF 服务。

这是我的 web.config。使用当前配置,任何人都可以调用 WCF 服务。正确的值应该是多少?

谢谢, 克鲁维

<configuration>

  <system.diagnostics>

  </system.diagnostics>



  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <customErrors mode="On" defaultRedirect="~\Errors\Error.htm">
      <error statusCode="404" redirect="~\Errors\404.htm"/>
    </customErrors>
  </system.web>

  <connectionStrings>

  </connectionStrings>

  <system.serviceModel>

    <diagnostics>

    </diagnostics>


    <extensions>
      <behaviorExtensions>
        <add name="silverlightFaults"
             type="ZCUtils.SilverlightFaultBehavior, ZCUtils, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
      </behaviorExtensions>
    </extensions>

    <behaviors>
      <endpointBehaviors>
        <behavior name="SilverlightFaultBehavior">
          <silverlightFaults />
        </behavior>
      </endpointBehaviors>

      <serviceBehaviors>
        <behavior name="ZCBehavior">
          <serviceMetadata httpsGetEnabled="true" />          
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>

    </behaviors>

    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBindingSsl" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647">
          <security mode="Transport" />
        </binding>
      </basicHttpBinding>        
    </bindings>

    <serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true" />

    <services>
      <service name="ZC.Web.Services.ZCServices" behaviorConfiguration="ZCBehavior">
        <endpoint address="" behaviorConfiguration="SilverlightFaultBehavior"
          binding="basicHttpBinding" bindingConfiguration="BasicHttpBindingSsl"
          contract="ZC.Web.Services.ZCServices" />
      </service>
    </services>

  </system.serviceModel>
</configuration>

【问题讨论】:

    标签: silverlight wcf windows-authentication


    【解决方案1】:

    以下文章展示了如何使用 Silverlight 客户端的 Windows 身份验证来保护 WCF 服务:

    http://msdn.microsoft.com/en-us/library/dd744835(v=vs.95).aspx

    本文讨论了如何使用 PrincipalPermissionAttribute,这将允许您通过组来限制可以调用特定服务的操作:

    http://msdn.microsoft.com/en-us/library/ms731200.aspx

    【讨论】:

    • 谢谢,它有效。有没有办法不用编码,只配置web.config?目前我必须对角色进行硬编码:[PrincipalPermission(SecurityAction.Demand, Role = "ZCUsers")] 有没有办法避免这种情况?
    猜你喜欢
    • 1970-01-01
    • 2012-04-15
    • 2018-02-12
    • 2015-06-13
    • 2012-08-01
    • 2023-03-18
    • 2013-05-02
    • 2011-11-19
    • 1970-01-01
    相关资源
    最近更新 更多