2

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

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

我尝试添加<authentication mode="Windows" />到区域/管理中的 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>

没有成功。

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

4

1 回答 1

1

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

查看有关该主题的讨论:将表单身份验证与 Windows 身份验证混合

于 2013-08-12T19:59:52.800 回答