Mvc AllowAnonymous 不起作用

Phi*_*son 4 asp.net-mvc-5 asp.net-identity

我有两个 MVC 5 应用程序,据我所知,它们都是相同的(一个是从另一个创建的)。但是在其中之一上AllowAnonymous不起作用。

如果我filters.Add(new System.Web.Mvc.AuthorizeAttribute());在 中注册FilterConfig,则AllowAnonymous某个方法在我的AccountController->ResetPassword方法中不起作用,系统将重定向到我的登录页面。

如果我删除此代码,并把[Authorize]AccountController类代替,一切都按你期望的那样。

我没有覆盖任何属性。

所以总而言之,一个项目可以处理过滤器。添加,另一个必须Authorize在控制器上,否则会AllowAnonymous被忽略。

有任何想法吗?

Phi*_*son 6

我现在已经找到了这个问题,并认为分享它可能很有用,因为当我早些时候查看时,我的确切问题似乎没有答案。

我遇到奇怪行为的原因是在没有工作的项目上,我有一个布局页面,其中有几个 @Html.Action 调用。这些调用是针对在过滤器添加授权属性时授权的控制器。因此,为了让 AllowAnonymous 处理我的方法并一直显示页面,AllowAnonymous 还需要添加到从 Html.Action 调用的子方法中。

这不是很明显,因为在调试中,使用 AllowAnonymous 的主要 Action 正在被调用!

希望这可以帮助某人。