IIS/PHP未传递(或传递不正确的)NTLM用户信息

IIS/PHP未传递(或传递不正确的)NTLM用户信息,php,iis,iis-8,windows-server-2016,iis-10,Php,Iis,Iis 8,Windows Server 2016,Iis 10,我目前正在将PHP应用程序从IIS 8.0迁移到IIS 10.0。NTLM/Windows身份验证已通过服务器管理器安装,脚本在PHP7.1上运行,使用的配置和文件与旧服务器中的配置和文件完全相同,IIS中的配置基本相同,我尝试使用它的网站已转换为应用程序,身份验证设置为仅Windows身份验证,已启用,同时启用NTLM和协商,未启用扩展器保护 运行包含phpinfo的脚本时,_SERVER[“LOGON_user”]下显示的用户帐户不正确(显示的是我用来连接到服务器本身的用户,而不是从自己的P

我目前正在将PHP应用程序从IIS 8.0迁移到IIS 10.0。NTLM/Windows身份验证已通过服务器管理器安装,脚本在PHP7.1上运行,使用的配置和文件与旧服务器中的配置和文件完全相同,IIS中的配置基本相同,我尝试使用它的网站已转换为应用程序,身份验证设置为仅Windows身份验证,已启用,同时启用NTLM和协商,未启用扩展器保护

运行包含phpinfo的脚本时,_SERVER[“LOGON_user”]下显示的用户帐户不正确(显示的是我用来连接到服务器本身的用户,而不是从自己的PC连接到应用程序的用户),而不是当前登录的用户。当尝试连接到应用程序时,它会要求我登录,而它会自动获取用户信息

除了版本差异之外,旧服务器和新服务器的唯一区别在于,服务器仅在HTTPS上运行,而不是混合运行,但即使关闭重定向规则,它仍然请求登录

预期的行为是应用程序自动加载并从用户的浏览器/401质询请求获取信息,而无需最终用户输入额外信息

CGI已将模拟用户设置为True

是否有人有可能导致这种情况的想法,我应该检查什么或者我可能遗漏了什么


您是否尝试禁用CGI\u模拟?此外,您在phpinfo中看到了哪个远程用户?LOGON\u USER是客户端模拟用于连接web服务器的用户帐户。现在,它将显示IIS服务器的登录用户。听起来就像有一个身份验证过滤器,并没有被系统会话隔离。您可能需要使用fiddler捕获请求并检查失败的请求跟踪日志。此外,向服务器发送用户名/密码是纯客户端行为。请确保您的浏览器将您的站点视为本地intranet。@JokiesDing您好,谢谢您的评论。我确实尝试在IIS的CGI设置下打开/关闭模拟功能,但没有成功。phpinfo中的远程用户和登录用户与上面的屏幕截图相同(登录用户已更改,但phpinfo中也显示了不正确的管理员用户)。当我尝试进入应用程序时,它会要求我使用弹出窗口登录,然后,它会正确连接我。但这不是我的解决方案,因为我希望它具有自动连接(也就是说,使用NTLM/WindowsAuth的SSO)。浏览器也将该站点视为本地intranet。您是否尝试禁用CGI\u模拟?此外,您在phpinfo中看到了哪个远程用户?LOGON\u USER是客户端模拟用于连接web服务器的用户帐户。现在,它将显示IIS服务器的登录用户。听起来就像有一个身份验证过滤器,并没有被系统会话隔离。您可能需要使用fiddler捕获请求并检查失败的请求跟踪日志。此外,向服务器发送用户名/密码是纯客户端行为。请确保您的浏览器将您的站点视为本地intranet。@JokiesDing您好,谢谢您的评论。我确实尝试在IIS的CGI设置下打开/关闭模拟功能,但没有成功。phpinfo中的远程用户和登录用户与上面的屏幕截图相同(登录用户已更改,但phpinfo中也显示了不正确的管理员用户)。当我尝试进入应用程序时,它会要求我使用弹出窗口登录,然后,它会正确连接我。但这不是我的解决方案,因为我希望它具有自动连接(也就是说,使用NTLM/WindowsAuth的SSO)。浏览器也将该站点视为本地intranet。