HowTo:将asp.net Intranet用户的Windows用户凭据传递给WCF服务

时间:2013-11-20 11:21:06

标签: asp.net wcf authentication intranet

我想将使用我的ASP.NET MVC应用程序的用户的Windows凭据传递给WCF服务。我想通过配置实现这一点,以便在代码中透明地发生。


(这个问题最初是以一种过于具体的方式提出来的,正如修订版中所见。我只是以更好的方式重新问这个问题,以回答我自己,希望它可以帮助某人。事实证明这是一个非常简单的任务。)

1 个答案:

答案 0 :(得分:4)

在web.config(客户端和服务器)中,在<system.serviceModel>部分添加/修改绑定,看起来像这样:

<basicHttpBinding>
    <binding name="MyBasicBinding">
      <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Windows" />
      </security>
    </binding>
</basicHttpBinding>

并将此添加到客户端web.config <system.web>部分:

<identity impersonate="true" />
<authentication mode="Windows" />

这两项更改将使最终用户成为Web请求的当前用户,然后将在WCF消息中发送。

然后可以在服务器端检索用户,如下所示:

ServiceSecurityContext.Current.WindowsIdentity