通过Web请求的Windows身份validationC ++ / Node.js

问题我想要使​​用Node.js的Windows身份validation

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

必须通过Node.js获取客户端的Windows用户名 – 即使我必须编写一个C ++库/服务。

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

我不想问用户的用户名和密码,因为这没有意义。

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

注意:这是在一个封闭的Intranet内部,并且在我们的ASP.NET应用程序和Active Directory中使用Windows身份validation。

途径

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

  • 客户端浏览器将根据您的IIS网站进行身份validation;
  • IIS站点将转发经过身份validation的请求到Node.js应用程序并返回到客户端。

确保禁用匿名访问,并只使用IIS站点的IWA。

有关如何在ASP.NET中使用C#或VB转发请求的几个示例,请参阅在ASP.NET中转发请求。 您还需要通过头或GET / POSTparameter passing用户名:

Response.AppendHeader("CustomUserNameHeader", Page.User.Identity.Name); 

假设

  • Node.js应用程序需要知道在客户端计算机上login的用户的名称。
  • 有可能只能从IIS站点访问Node.js应用程序,否则解决scheme是完全不安全的。