9

问题 我希望能够将 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 一起使用。

4

1 回答 1

1

方法

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

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

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

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

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

假设

  • Node.js 应用程序需要知道在客户端计算机上登录的用户的名称。
  • 可以使 Node.js 应用程序只能从 IIS 站点访问,否则,该解决方案是完全不安全的。
于 2012-11-15T02:39:11.727 回答