MVC4表单身份验证,但管理员区域中的Windows身份验证

时间:2013-08-12 16:44:33

标签: asp.net-mvc-4 windows-authentication iis-express

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

[Authorize(Roles = @"ECR")]
public class CMSController : Controller

我尝试将<authentication mode="Windows" />添加到Regions / Admin中的Web.config system.web部分。

当我尝试登录Admin / CMS区域时,它会将我反弹回我在项目级别Web.config标记中设置的loginUrl。如果我已登录,只需将我弹回主页即可。

我已经阅读了一些关于使用IIS Express设置Windows身份验证的文章,并找到了关闭Web项目属性中“匿名身份验证”的建议。我这样做了,管理员/ CMS工作正常,如果我是小组的一部分,允许我进入,如果我不是,那就拒绝我。但是,关闭匿名身份验证会破坏我的网站的“表单身份验证”部分。从那以后,我尝试通过system.webServer部分使用以下命令关闭我的Areas / Admin / Web.config中的匿名身份验证:

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

没有成功。

我在这里做错了什么?谢谢

1 个答案:

答案 0 :(得分:1)

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

查看有关该主题的讨论:Mixing Forms authentication with Windows authentication