Enable Windows Auth and disable Forms auth on Admin folder
刚刚将一个站点从 Windows Server 2003 移动到 Windows Server 2012,并且难以限制对 Admin 目录的访问。在旧版本的 IIS 中,我需要做的就是禁用对该文件夹的匿名访问。在 IIS8 中,我有:
- 匿名身份验证:已禁用
- ASP.NET 模拟:已禁用
- 基本身份验证:已禁用
- 表单身份验证:已启用
- Windows 身份验证:已启用
这给了我一个警报,上面写着:
Challenge-based and login redirect-based authentication cannot be used simultaneously.
我觉得这完全合理。但是,我正在尝试禁用"表单身份验证",下一个警报说:
This feature has been locked and is read-only
如何强制 ASP.NET 站点的管理目录(仅该目录)要求 Windows 身份验证?
我相信您只需要将您的管理文件夹设为自己的应用程序根目录,然后您就可以为所欲为。
- 从 IIS Manager > Sites > {Your Website} > admin 文件夹,右键单击并选择 \\'Convert to Application\\'
- 接受应用程序的默认设置(您可以根据需要更改)
- 单击 IIS 管理器 > 站点 > {您的网站} > admin 文件夹,深入到身份验证,然后从右侧菜单中选择禁用。
管理员不是自己的应用程序的图像:
让它成为自己的应用程序:
如果您的文件夹位于同一个 IIS Web 应用程序(显然是)下,则您不能使用 2 种不同类型的身份验证。您需要有 2 个单独的 IIS 应用程序或子应用程序(我认为这也意味着虚拟目录)。
换句话说,您不能同时为同一个 IIS 应用程序启用 Win Auth 和 Forms Auth,在 IIS 7 中将托管管道模式设置为集成
通过我的书签搜索后更新:
我尝试了这篇文章中的想法,但我无法让它发挥作用:http://mvolo.com/iis-70-twolevel-authentication-with-forms-authentication-and-windows-authentication/
但是,它可能会给您更多的见解或想法。
我的场景更简单,我需要对整个应用程序进行 Windows 和 Forms 身份验证。
我还有一个管理部分,最终我将管理员放在一个完全独立的 Web 应用程序中,该应用程序在子域下运行。这两个应用程序都在集成模式的 IIS 7.5 中运行(启用了管理窗口身份验证,应用程序的其余部分启用了表单身份验证)。