使用web.config关闭MVC中的身份验证

时间:2012-03-26 21:29:29

标签: asp.net-mvc web-config

我有一个MVC站点,使用[授权]属性进行保护,但在生产网站上遇到问题,该网站在不同服务器上的一对或多个站点上使用单点登录。我想将身份验证作为原因;有没有办法通过web.config临时关闭身份验证,以便可以访问具有授权属性的所有或部分Controller操作而无需登录?

编辑:

我尝试将以下内容添加到web.config:

<authentication mode="None" />

但这会导致使用“授权属性”修饰的所有操作都呈现空白页面。没有授权的操作会继续工作

4 个答案:

答案 0 :(得分:8)

  

有没有办法暂时关闭身份验证   web.config使所有或一些控制器动作具有   无需登录即可访问授权属性?

不,默认框架无法做到这一点。我很确定MVC源代码中的AuthorizeAttribute将尝试检查并查看用户是否已登录。如果没有经过身份验证的用户,将拒绝访问。

答案 1 :(得分:6)

使用[AllowAnonymous]允许未经授权的用户使用控制器中的特定操作。

答案 2 :(得分:0)

在你的Web.config中注释掉孩子:

<authentication mode="Windows" />
<authorization>
  <!--<deny users="?" />-->
</authorization>

答案 3 :(得分:0)

您可以通过在web.config中添加以下内容来允许所有用户访问系统。当控制器检查授权时,将验证用户,因为您允许所有具有任何Windows身份验证的用户访问系统。

email