【发布时间】:2018-02-24 19:14:24
【问题描述】:
我们正在尝试使用 RunImpersonated(handle, action);能够从网络服务器执行 REST 调用,但我们很难做到这一点。项目 i ASP.NET Core 2.0 MVC。
我们有以下通用方法来建立一个imp。 context 代表登录的 wnd。用户:
var user = WindowsIdentity.GetCurrent();
IntPtr token = user.Token;
SafeAccessTokenHandle handle = new SafeAccessTokenHandle(token);
WindowsIdentity.RunImpersonated(handle, action);
基本上在我们进行 REST 调用的操作中。
事情是我们可以在我们的开发机器上本地运行而没有任何问题,但我们不能在远程网络服务器上做同样的事情。因此:冒充。
上面是我们针对小鬼的方法吗?部分正确,因为我们实际上无法确定是否推广任何用户凭据?
我们在 REST-GET 实现中尝试了不同的技术。以及没有上述。另一方面,上面的调用更接近我们的控制器和 REST impl。没有任何关于小鬼的细节。自己。
【问题讨论】:
-
你有没有想过这个问题?我们正在处理类似的事情(从我们的一个 Intranet 站点内调用 Intranet API)。我们正在获取服务器的主机名(当从我们的 API 返回 Windows.Identity.User.Name 作为字符串时)。我们实现了与您上面的代码类似的东西,现在我们得到了 401,但正确的用户名似乎正在访问服务器......无论如何,如果您发现了有关此事的任何信息,我们将不胜感激!谢谢!
-
我也很好奇这方面是否有任何指导