通过 Web 请求C++/节点.js进行 Windows 身份验证
Windows Authentication via Web Request C++ / Node.js
>问题我希望能够通过 Node.js 使用 Windows 身份验证。
我知道IIS在 ASP.NET 中处理Windows身份验证,但是我无法弄清楚的是,如何从node.js获取当前的客户端Windows用户名。 我知道它不是通过 IIS 运行的(并且真的不想沿着 IISNode 路线走下去)。
必须有一种方法可以通过 Node 获取客户端的 windows 用户名.js - 即使我必须编写一个C++库/服务。
最初的想法是,我将能够在 ASP.NET 中设置一个 Web 服务,该服务将使用 Windows 身份验证,并允许我使用 Web 请求来获取该用户 - 但这也许太天真了!
我不想要求用户提供用户名和密码 - 因为这错过了重点。
有什么想法、想法或我可以看的地方吗?还是这是不可能的?
注意:这是在一个封闭的内联网中,Windows身份验证在我们的 ASP.NET 应用程序中与Active Directory一起使用。
方法
除非我错过了一些要求,否则您应该能够设置一个 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 站点访问,否则,解决方案是完全不安全的。
相关文章:
- 通过递归进行因子分解
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 我可以使用 g++ 进行三种比较 (<=>) 吗?
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- 使用libgit2、c++进行pull
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 如何使用模板函数的函数签名进行SFINAE
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 将模板化的类型与C++中的某些类/类型进行比较
- 在c++中尝试对对象数组进行排序时,出现std:bad_alloc错误
- 如何对点云数据进行排序
- 从文本文件中读取时钟时间和事件时间并进行处理
- 对字符串进行位操作
- 是否可以使用winusb同时与多个相同的usb设备进行通信
- 是否可以对零模板参数进行模板专门化
- 对字符串进行排序时,在c++中处理sort()
- 通过 Web 请求C++/节点.js进行 Windows 身份验证
- Qt和Node JS通过WebSockets进行网络通信
- 如何与Node.js进程中的C++程序输入流进行交互