2012-07-07 123 views
9

问题 我希望能够在Node.js中使用Windows身份验证。通过Web请求进行Windows身份验证C++/Node.js

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

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

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

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

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

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

+1

我认为您正在寻找的是http://en.wikipedia.org/wiki/Integrated_Windows_Authentication和NTLM身份验证。 – 2012-10-31 05:42:18

回答

1

方法

除非我错过了一些要求,你应该能够设置一个IIS网站中继请求您的Node.js应用程序,以便

  • 客户端浏览器会根据您的IIS网站进行身份验证;
  • IIS站点会将已认证的请求转发给Node.js应用程序并返回给客户端。

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

请参阅Relaying a request in ASP.NET了解如何使用C#或VB在ASP.NET中转发请求的几个示例。你也需要用头或GET/POST参数传递用户名:

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

假设

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

听起来不错,我会看看这个,并给它一个去。 – mrdnk 2012-11-16 19:25:33

相关问题