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

时间:2012-07-07 13:25:42

标签: c++ node.js iis windows-authentication

问题 我希望能够将Windows身份验证与Node.js一起使用。

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

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

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

我不想要求用户提供他们的用户名和密码 - 因为这忽略了这一点。

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

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

1 个答案:

答案 0 :(得分:1)

<强>方法

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

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

确保禁用匿名访问,并仅将IIS用于IIS站点。

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

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

<强>假设

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