在IIS 7上,我设置了一个名为" XYZ"的应用程序,以及一个应用程序池。
我将此应用程序池的标识设置为自定义用户,让我们称之为“马里奥"”。
Mario拥有对XYZ指向的文件夹/文件的NTFS访问权限(远程共享)。
在XYZ身份验证设置中,仅启用了Windows身份验证:
在Windows身份验证的提供程序中,只有NTLM处于活动状态:
XYZ的物理路径凭证设置为应用程序用户/传递:
所以问题是,当我去http://server.com/XYZ时,我受到挑战(这是预期的),但我无所谓,看起来不接受身份验证令牌,并且浏览器再次挑战我。
我查看了Active Directory的日志并且请求正在通过,但即使用户成功通过身份验证,浏览器也会再次提出质疑。
以下目标:允许目录列表,但使用用户提供的凭据进行NTFS访问。现在我无法让它发挥作用。谢谢!
这是Web.config文件:
答案 0 :(得分:3)
让它工作的诀窍是将“用户”添加到权限中。像使用NTLM作为顶级提供程序一样设置IIS,仅启用Windows身份验证(您可以删除web.config中的部分,只需要<authentication="Windows" />
)并将IIS_USRS和用户添加到权限集。
答案 1 :(得分:1)
除了现有答案之外,如果您不希望让用户受到质疑,则必须在用户的浏览器中为目标区域正确设置IE安全性。就我而言,我希望我的本地开发系统能够在不受到挑战的情况下登录(自动传递)。该设置位于Internet Options->Security tab->Custom level...
底部(确保您选择了正确的区域)。我的受信任站点区域默认为Automatic logon only in Intranet zone.
我将其更改为Automatic logon with current user name and password
我的受信任站点区域,并确保我的本地计算机名称位于受信任站点列表中(我使用本地计算机[pc]名称在特殊情况下代替localhost。)