Asp.net 启用Windows身份验证并禁用管理文件夹上的窗体身份验证

Asp.net 启用Windows身份验证并禁用管理文件夹上的窗体身份验证,asp.net,windows-authentication,iis-8,Asp.net,Windows Authentication,Iis 8,刚刚将一个站点从Windows Server 2003移动到Windows Server 2012,并且很难限制对管理目录的访问。在旧版本的IIS中,我所需要做的就是禁用对该文件夹的anon访问。在IIS8中,我有: 匿名身份验证:已禁用 ASP.NET模拟:已禁用 基本身份验证:已禁用 表单身份验证:已启用 Windows身份验证:已启用 这给了我一个警告,上面写着: 基于质询的身份验证和基于登录重定向的身份验证不能同时使用 我觉得完全合理。但是,我正在尝试禁用“表单身份验证”,下一个警报

刚刚将一个站点从Windows Server 2003移动到Windows Server 2012,并且很难限制对管理目录的访问。在旧版本的IIS中,我所需要做的就是禁用对该文件夹的anon访问。在IIS8中,我有:

  • 匿名身份验证:已禁用
  • ASP.NET模拟:已禁用
  • 基本身份验证:已禁用
  • 表单身份验证:已启用
  • Windows身份验证:已启用
这给了我一个警告,上面写着:

基于质询的身份验证和基于登录重定向的身份验证不能同时使用

我觉得完全合理。但是,我正在尝试禁用“表单身份验证”,下一个警报显示:

此功能已锁定且为只读


如何强制ASP.NET站点的管理目录(仅该目录)要求Windows身份验证?

如果您的文件夹位于同一IIS web应用程序下(显然是),则无法使用两种不同的身份验证。您需要有两个独立的IIS应用程序或子应用程序(我认为这也意味着虚拟目录)

换句话说,在IIS 7中,在托管管道模式设置为集成的情况下,不能同时为同一IIS应用启用Win Auth和Forms Auth+

搜索“我的书签”后更新


我尝试了本文中的想法,但无法使其发挥作用: 然而,它可能会给你更多的洞察力或想法

我的场景更简单,整个应用程序都需要Windows和Forms auth


我也有一个管理员部分,我最终把管理员放在一个完全独立的web应用程序中,在一个子域下运行。这两个应用程序都是在IIS 7.5中运行的,并采用集成模式(启用了管理windows身份验证,其余应用程序启用了表单身份验证)。

我相信您只需将管理文件夹设为自己的应用程序根目录,然后就可以执行您想要的操作

  • 从IIS管理器>站点>{Your Website}>管理文件夹中,右键单击并选择“转换为应用程序”
  • 接受应用程序的默认设置(如果愿意,可以更改)
  • 单击IIS管理器>站点>{Your Website}>管理文件夹,深入到身份验证,然后从右菜单中选择禁用
管理员不是其自己的应用程序的图像:

打造自己的应用程序:


这似乎是对ASP.Net的概述,我要提到的是,其中一些设置不会对ASP.Net MVC应用程序产生任何影响。@ErikPhilips-您所说的“不会产生任何影响”是什么意思?根据不同的情况,它们都会产生一些影响。不,FormsAuthentication不会对使用ASP.NET标识的站点产生任何影响(它会删除FormsAuth模块),但其他版本会产生影响。admin文件夹是否为虚拟目录/您是否尝试过将其设置为虚拟目录?尝试了两种方法。这似乎没什么用。它能用在classic上吗?这是我的最佳选择,还是我应该将管理员拆分为单独的应用程序(admin.mysite.com)?我不确定classic,它在IIS 6.0中使用过,我没有使用这种模式,更不用说这种情况了。目前它被认为是不推荐的。我想说是的,如果你对服务器没有任何限制的话,它认为麻烦小得多,而且是最快的解决方案。最后,最重要的是完成这项工作。我可能也会这么做。应该不会太糟糕。谢谢