通过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是完全不安全的。