通过Web请求C++/Node.js进行Windows身份验证

mrd*_*dnk 9 c++ iis windows-authentication node.js

问题 我希望能够使用Node.js进行Windows身份验证.

我知道IIS在ASP.NET中处理Windows身份验证,但我无法弄清楚的是,我如何从node.js获取当前的客户端Windows用户名.我知道它不是通过IIS运行(并且真的不想沿着IISNode路线运行).

必须有一种方法通过Node.js获取客户端的Windows用户名 - 即使我必须编写C++库/服务.

最初的想法是,我可以在ASP.NET中设置一个Web服务,它将使用Windows身份验证,并允许我使用Web请求来获取该用户 - 但这可能太天真了!

我不想向用户询问他们的用户名和密码 - 因为这忽略了重点.

我能看到的任何想法,想法或地点?或者这是不可能的?

注意:这是在一个封闭的Intranet中,Windows身份验证在我们的ASP.NET应用程序中与Active Directory一起使用.

Ser*_*lov 1

方法

除非我错过了一些要求,否则您应该能够设置一个 IIS 网站来将请求转发到您的 Node.js 应用程序,以便

  • 客户端浏览器将针对您的 IIS 站点进行身份验证;
  • IIS 站点会将经过身份验证的请求转发到 Node.js 应用程序并返回给客户端。

确保禁用匿名访问并仅对 IIS 站点使用 IWA。

请参阅在 ASP.NET 中中继请求,获取有关如何使用 C# 或 VB 在 ASP.NET 中中继请求的几个示例。您还需要通过标头或 GET/POST 参数传递用户名:

Response.AppendHeader("CustomUserNameHeader", Page.User.Identity.Name);
Run Code Online (Sandbox Code Playgroud)

假设

  • Node.js 应用程序需要知道登录客户端计算机的用户名。
  • 可以使 Node.js 应用程序只能从 IIS 站点访问,否则该解决方案是完全不安全的。