node.js - 使用 Nodejs 和 IIS 进行 Windows 身份验证;获取用户名的问题
问题描述
我正在尝试使用 IIS 设置 NodeJS Web 应用程序以首先使用 Windows 身份验证,如果未找到,则可以使用匿名身份验证来访问该网站。
在这篇文章https://github.com/tjanczuk/iisnode/issues/87之后,我将“ IIS 服务器变量提升为 X-iisnode-* HTTP 请求标头”,您可以在下面的配置文件中看到。
问题是这样的:当 IIS 中的匿名身份验证关闭时,所有域用户都得到了正确的身份验证,但匿名用户根本无法访问该网站。
当我打开匿名身份验证时,所有用户都匿名访问,并且变量 auth_user 总是返回为空。
有没有办法告诉 IIS,首先强制执行 Windows 身份验证,如果不是域用户然后使用匿名身份验证?
我在 Windows 2012 服务器、iisnode、IIS 8 中运行 NodeJS 应用程序
<configuration>
<system.webServer>
<handlers>
<add name="iisnode" path="app.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="app">
<match url="^/*" />
<action type="Rewrite" url="app.js" logRewrittenUrl="false" />
</rule>
</rules>
<rewriteMaps>
<rewriteMap name="http://website/">
<add key="http://website/" value="192.168.10.1/" />
</rewriteMap>
</rewriteMaps>
</rewrite>
<iisnode promoteServerVars="AUTH_USER,AUTH_TYPE" />
</system.webServer>
</configuration>
我还尝试使用 node-sspi 来获取用户的信息,当我在独立模式下运行应用程序时它有效,当我尝试在 IIS 后面运行它时它失败了......有人试过这个吗?
解决方案
推荐阅读
- dsl - 如何从空手道数组格式的json响应中获取值
- javascript - 使用带有 ReactJS 的 axios 从响应 json 动态更新 img 的 src
- grails - 有没有一种简单或正确的方法来删除弹簧安全插件?
- javascript - VueJS:使用 v-for 渲染数组
- java - Android 按日期键订购 Firebase 项目
- java - Java SWT 连续表格不同的单元格值
- laravel - 在 Web Base PHP laravel 应用程序上从 POS 打印机打印账单
- php - laravel 无法处理异常,catch 块未执行
- facebook - 如何使用 Facebook ID 号查找 Facebook 个人资料?
- java - Spring boot - h2 DB 测试多次执行脚本