【问题标题】:Windows Authentication via Web Request C++ / Node.js通过 Web 请求 C++/Node.js 进行 Windows 身份验证
【发布时间】:2012-07-07 13:25:42
【问题描述】:

问题 我希望能够通过 Node.js 使用 Windows 身份验证。

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

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

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

我不想向用户询问他们的用户名和密码 - 因为这没有抓住重点。

有什么想法、想法或我可以查看的地方吗? 或者这是不可能的?

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

【问题讨论】:

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


【解决方案1】:

接近

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

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

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

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

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

假设

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

【讨论】:

    猜你喜欢
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 2015-02-26
    相关资源
    最近更新 更多