IIS 7.5 Windows 身份验证失败,除非代码文件共享给最终用户

Posted

技术标签:

【中文标题】IIS 7.5 Windows 身份验证失败,除非代码文件共享给最终用户【英文标题】:IIS 7.5 Windows Authentication fails unless the code files are shared to end users 【发布时间】:2013-04-30 06:27:00 【问题描述】:

我正在设置一个简单的经典 ASP 应用程序,以在 Windows 2008 R2 服务器上的 IIS 7.5 中使用 Windows 身份验证读取用户登录信息。 (应用程序只是一个文件,并且有这一行 - response.write(Request.ServerVariables("LOGON_USER")))

但我无法读取用户的登录信息,除非代码文件(应用程序目录)被授予特定人员或“所有人”的读取和执行权限。 如果我删除“所有人”或最终用户的 ID,系统会提示我弹出一个登录弹出窗口,随后将我带到 401 - 未经授权的错误。

我在 IIS 中应用了以下设置……

    将应用程序池的标识设置为“ApplicationPoolIdentity”

    启用 Windows 身份验证并禁用所有其他身份验证。

    将“NTLM”移到 Windows 身份验证下的提供程序顶部。

    在 CGI 中将模拟用户设置为 False

    将“IIS AppPool\DefaultAppPool”添加到应用程序目录的安全属性中。

我很困惑为什么带有 Windows 身份验证的 IIS 7.5 Web 应用程序需要最终用户或“每个人”都具有对代码文件的读取权限。

请提出您的意见以解决此问题并帮助我在不与最终用户共享文件夹的情况下运行此应用程序。

提前致谢,

阿肖克

【问题讨论】:

这里有什么消息吗?面临同样的问题。 【参考方案1】:

我给出了更详细的答案here,但简而言之,还有另一组属性,您可以在其中指定 IIS 用于对文件系统进行身份验证的凭据,不再使用应用程序池 ID。寻找Physical Path Credentials & Physical Path Credentials Logon Type

【讨论】:

以上是关于IIS 7.5 Windows 身份验证失败,除非代码文件共享给最终用户的主要内容,如果未能解决你的问题,请参考以下文章

iis 7.5 dns windows身份验证页面用户身份不起作用

使用 Silverlight 5、IIS 7.5 对 WCF 服务进行 Windows 身份验证

具有 Windows 身份验证的 IIS 7.5 Web 应用程序是不是要求最终用户具有文件权限?

使用 Powershell 3.0 切换 IIS 7.5 身份验证“匿名身份验证”?

MVC 5 IIS 7.5 双跳问题(避免硬编码 SQL 密码)

使用 IIS 7.5 进行表单身份验证 - 未授权