使用 Microsoft 集成 windows 身份验证与 WCF 但没有 IIS

Using Microsoft integrated windows authentication with WCF but without IIS

有没有办法获得必须使用 IIS 部署的 Microsoft Integrated Windows 身份验证 w/o 的行为?我们有自己的独立 C#/WCF WebServer,我们想添加此功能。我们不能将 IIS 用作部署的一部分。

WCF 是“自托管”。这意味着,您不必为了在服务器上 运行 它而拥有 IIS(当然取决于您的实现)。您甚至可以在客户端的计算机上 运行 它。

有关 WCF 身份验证的详细信息,请参阅本文:

Authentication and Authorization in WCF Services

以及本文中的示例:

Authenticate with a User Name and Password

您可以设置 ClientCredentialType

WebHttpBinding whb = ... ;
whb.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;

然后使用

获取 WindowsIdentity
WindowsIdentity identity =  ServiceSecurityContext.Current.WindowsIdentity;