启用Windows身份验证并在Admin文件夹上禁用Forms auth

时间:2014-08-01 16:14:46

标签: asp.net windows-authentication iis-8

刚刚将网站从Windows Server 2003迁移到Windows Server 2012,并且很难限制对Admin目录的访问。在旧版本的IIS中,我需要做的就是禁用对该文件夹的匿名访问。在IIS8中,我有:

  • 匿名身份验证:已禁用
  • ASP.NET模拟:已禁用
  • 基本身份验证:已禁用
  • 表单身份验证:已启用
  • Windows身份验证:已启用

这给了我一个警告说:

  

不能同时使用基于挑战和登录重定向的身份验证。

我觉得这完全合理。但是,我试图禁用" Forms Authentication"并且下一个警报说:

  

此功能已被锁定且为只读

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

2 个答案:

答案 0 :(得分:2)

我相信你只需要将你的管理文件夹设置为自己的应用程序根目录,然后你可以做你想做的事。

  • 从IIS管理器>网站> {您的网站}>管理员文件夹,右键单击并选择“转换为应用程序”
  • 接受应用程序的默认设置(如果需要,可以更改)
  • 单击IIS管理器>网站> {您的网站}>管理员文件夹,深入查看身份验证,然后从右侧菜单中选择“禁用”。

管理员不是自己的应用的图片:

enter image description here

制作自己的应用:

enter image description here

答案 1 :(得分:0)

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

换句话说,对于同一个IIS应用程序,您不能同时启用 Win Auth Forms Auth ,并将托管管道模式设置为< em>集成,在IIS 7 +

更新搜索我的书签后:


我尝试了本文中的想法,但我无法让它发挥作用:http://mvolo.com/iis-70-twolevel-authentication-with-forms-authentication-and-windows-authentication/ 但是它可能会给你更多的见解或想法。

我的方案更简单,我需要Windows和Forms auth用于整个应用程序。

我还有一个管理部分,最后我最终将管理员放在一个完全独立的网络应用程序中,该应用程序在子域下运行。这两个应用程序都在集成模式的IIS 7.5中运行(启用了admin windows auth,其余应用程序启用了Forms Auth)。