将Windows安全令牌传递给使用NTLM和Windows身份验证调用另一个Web服务的对象

use*_*201 5 iis wcf windows-authentication

我有一个Web应用程序调用引用的dll/api的对象调用wcf服务.

Machine 1 = where the wcf service resides
Machine 2 = IIS server, the web application that uses the api that calls the service from Machine 1
Run Code Online (Sandbox Code Playgroud)

我的代码:

using (WindowsAuthenticationContext ctx = identity.Impersonate()){
  //Call to the API goes here
}
Run Code Online (Sandbox Code Playgroud)

当我从机器2(IIS服务器)访问该网站时,它的工作原理.但是,当我从另一台客户端计算机访问该网站时,它给出了一个错误"请求令牌无法满足".

注意:api已经是最终版,不能再修改了.

任何帮助将不胜感激.

谢谢

Mer*_*soy 0

NTLM 在具有本地安全上下文的计算机中工作。如果您想在不同的计算机上使用 NTLM,这些计算机应该共享相同的安全上下文,例如 Active Directory 域。如果您的站点(计算机所在的站点)没有相同的安全上下文,则这将不起作用。您可以通过更改服务的配置来使用客户端证书。不更改 dll 或代码。