【问题标题】:WCF call with windows authentication带有 Windows 身份验证的 WCF 调用
【发布时间】:2010-12-13 09:31:44
【问题描述】:

我们有一个系统,用户访问 Web 服务器,然后 Web 服务器调用 WCF 服务。

我们希望在 Web 服务器上应用程序池的 windows 标识的安全上下文中调用 WCF 服务。

最好的方法是什么?能不能纯粹通过web.config文件中的配置来完成。

谢谢

设拉子

【问题讨论】:

    标签: wcf security configuration windows-authentication


    【解决方案1】:

    是的,你应该可以做到这一点,一切都在配置中:

    <system.serviceModel>
      <bindings>
         <netTcpBinding>
            <binding name="WinAuth" mode="Transport">
               <transport clientCredentialType="Windows" />  
            <bindings>
         </netTcpBinding>
      </bindings>
    </system.serviceModel>
    

    当然,根据您的绑定,您必须在 &lt;bindings&gt; 父节点下使用不同的标签 - 当然,并非所有绑定都支持所有安全模式.....

    在您的端点中,使用适当的绑定,然后仅引用此配置:

    <endpoint name="WCFService" address="......." 
              binding="netTcpBinding"
              bindingConfiguration="WinAuth"
              contract="......" />
    

    应该这样做!当然,如果您需要消息安全而不是传输安全,您也可以这样做。

    在您的 WCF 服务方法中,您可以通过以下方式检查 Windows 凭据是否已发送,以及它们是什么:

    ServiceSecurityContext.Current.WindowsIdentity
    

    如果你没有 Windows 调用者,这将为 NULL,否则它将显示谁给你打电话。

    马克

    【讨论】:

      猜你喜欢
      • 2011-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      • 2015-04-21
      • 1970-01-01
      • 2011-07-22
      • 1970-01-01
      相关资源
      最近更新 更多