我正在构建一个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。
答案 0 :(得分:3)
是否可以配置wcf服务,以便将凭据转换为其计算机上的Windows帐户?
没有。集成Windows身份验证要求服务器和客户端都属于同一个域(或者在任何情况下都具有信任关系的域)。您无法在服务器上对本地计算机帐户运行IWA。
您必须使用其他(可能是自定义的)身份验证形式,然后模拟您要在服务器代码中运行的用户。