1

我正在构建一个 wcf 服务,该服务旨在使用 Windows 身份验证在 Intranet 环境中运行。我一直在愉快地使用本地计算机上的某种默认设置。

现在的问题是我需要测试它安装到异地演示计算机上。我只需要使用针对 wcf 服务计算机的用户帐户使用的用户名密码来运行它。

这是我的客户代码:

using (ImportServiceClient client = new ImportServiceClient("ImportServiceSoap12", REMOTE_ADDRESS))
{
    client.ClientCredentials.Windows.AllowNtlm = true;
    client.ClientCredentials.Windows.ClientCredential =
        new NetworkCredential(userName, password, computerName);

    result = client.Sync(items.ToArray());
}

是否可以配置 wcf 服务,以便将凭据转换为其机器上的 Windows 帐户?

我一直在这里和那里阅读相互矛盾的帖子,但我很确定 IIS 不应该成为身份验证的一部分。我不确定 ASP.Net 身份验证节点是否适用,或者它是否都是绑定配置。

理想情况下,我希望它是 NTLM 类型的身份验证,这样我就不需要设置 https。

4

1 回答 1

3

是否可以配置 wcf 服务,以便将凭据转换为其计算机上的 Windows 帐户?

否。集成 Windows 身份验证要求服务器和客户端都属于同一域(或在任何情况下具有信任关系的域)。您不能对服务器上的本地计算机帐户有效地运行 IWA。

您将不得不使用其他一些(可能是自定义的)身份验证形式,然后模仿您想要在服务器代码中运行的用户。

于 2011-05-02T16:03:05.953 回答