我目前正在为我构建的成员网站使用表单身份验证。但是,我创建了一个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>
没有成功。
我在这里做错了什么?谢谢
答案 0 :(得分:1)
支持一种站点的两种身份验证形式有点冒险。我建议设置两个单独的站点,一个用于管理员,一个用于指向同一个数据库的成员。
查看有关该主题的讨论:Mixing Forms authentication with Windows authentication