Asp.net mvc 4 MVC4表单身份验证,但Windows身份验证位于管理区域

Asp.net mvc 4 MVC4表单身份验证,但Windows身份验证位于管理区域,asp.net-mvc-4,windows-authentication,iis-express,Asp.net Mvc 4,Windows Authentication,Iis Express,我目前正在为我构建的会员网站使用表单身份验证。但是,我已经创建了一个CMS,我希望内部人员可以通过我创建的管理区域访问它。对于管理区域,我想改用Windows身份验证。我正在开发环境中使用IIS Express。我有我的管理员/CMS控制器装饰像这样 [Authorize(Roles = @"ECR")] public class CMSController : Controller 我已尝试将添加到/Admin区域中的Web.config system.Web部分 当我尝试登录到Admin/

我目前正在为我构建的会员网站使用表单身份验证。但是,我已经创建了一个CMS,我希望内部人员可以通过我创建的管理区域访问它。对于管理区域,我想改用Windows身份验证。我正在开发环境中使用IIS Express。我有我的管理员/CMS控制器装饰像这样

[Authorize(Roles = @"ECR")]
public class CMSController : Controller
我已尝试将
添加到/Admin区域中的Web.config system.Web部分

当我尝试登录到Admin/CMS区域时,它只会将我返回到我的项目级别Web.config的标记中设置的loginUrl。如果我登录,它只会将我跳转到主页

我阅读了一些关于使用IIS Express设置Windows身份验证的文章,并在web项目的属性中找到了关闭“匿名身份验证”的建议。我这样做了,管理员/CMS工作正常,如果我是团队的一部分,允许我加入,如果我不是团队的一部分,则拒绝我加入。但是,关闭匿名身份验证会破坏网站的“我的表单身份验证”部分。由于这样做有效,我尝试通过system.webServer部分关闭/Admin/Web.config区域中的匿名身份验证,方法是:

<security>
  <authentication>
    <anonymousAuthentication enabled="false" />
  </authentication>
</security>

没有成功


我做错了什么?谢谢

支持一个站点的两种身份验证形式有点冒险。我建议设置两个独立的站点,一个用于管理员,另一个用于指向同一数据库的成员

查看以下关于该主题的讨论: