在ASP.NET MVC项目中,通常都要使用身份验证和权限控制,但总有部分网页是能够匿名访问的。使用AllowAnonymous属性就能够指定须要匿名访问的控制器,从而跳过身份验证。网络
可是今天却遇到一个AllowAnonymous属性失效的问题,致使声明了该属性控制器的操做方法没法匿名访问,须要登录后才可访问。后通过排查,是因为配置文件属性设置的问题。函数
通常是这样声明这个属性的:post
[AllowAnonymous]
public ActionResult Index() { return View(); }
声明了容许匿名访问后,用户访问该控制器下的Index操做方法时,就无需进行身份验证了网站
(PS:匿名属性启用的前提是网站启用了form身份验证)。spa
可是若是有发现声明了该属性后,却没法访问属性设置下的Action操做方法,反而跳转到身份验证的登录页面。这个时候能够按下面步骤排除问题:code
<authorization> <deny users="?" /> </authorization>
将配置文件的此段配置删除后,就能够正常的匿名访问有声明容许匿名访问属性的Action操做方法了。orm
另外要说的一点,若是在ASP.NET MVC中已经使用了form身份验证,那么最好不要在配置文件中设置authorization元素,身份验证控制应该使用Authorize属性和AllowAnonymous属性。xml
做者:十有三继承
出处:http://shiyousan.com/post/635406153786208233事件
欢迎转载本文,本文版权归做者全部,转载请声明出处或保留此段声明。^_^请尊重他人劳动成果,共建美好的网络环境。