我正在设置一个简单的经典ASP应用程序,在Windows 2008 R2服务器上的IIS 7.5中使用Windows身份验证读取用户登录。 (该应用程序只是一个文件并具有此行 - response.write(Request.ServerVariables(“LOGON_USER”)))
但我无法读取用户的登录信息,除非给出了代码文件(应用程序目录)Read&对特定人员或“每个人”的执行权限。 如果我删除'Everyone'或最终用户的Id,我会被提示登录弹出窗口,随后将我带到401 - 未经授权的错误。
我在IIS中应用了以下设置...
将应用程序池的标识设置为“ApplicationPoolIdentity”
启用Windows身份验证并禁用所有其他身份验证。
在Windows身份验证下将“NTLM”移至“提供者”的顶部。
在CGI
将“IIS AppPool \ DefaultAppPool”添加到应用程序目录的“安全性”属性中。
我很困惑为什么带有Windows身份验证的IIS 7.5 Web应用程序需要最终用户或“Everyone”才能拥有对代码文件的读取权限。
请建议您的观点以解决此问题,并帮助我运行此应用程序,而不与最终用户共享文件夹。
提前致谢,
阿肖克
答案 0 :(得分:1)
我给出了更详细的答案here,但简而言之,还有另一组属性,您可以在其中指定IIS用于对文件系统进行身份验证的凭据,不再使用应用程序池ID。寻找Physical Path Credentials
& Physical Path Credentials Logon Type