我有两个MVC 5应用程序,据我所知,它们都是相同的(一个是从另一个创建的(。但是,在其中一个上AllowAnonymous
不起作用。
如果我在 FilterConfig
中注册filters.Add(new System.Web.Mvc.AuthorizeAttribute());
,那么AllowAnonymous
一种方法在我的 AccountController
-> ResetPassword
方法上不起作用,系统会重定向到我的登录页面。
如果我删除此代码并改为[Authorize]
放在 AccountController
类上,一切都会按您的预期工作。
我没有覆盖任何属性。
所以总而言之,一个项目可以处理过滤器。此外,另一个必须在控制器上具有Authorize
,否则AllowAnonymous
将被忽略。
有什么想法吗?
我现在已经找到了问题,并认为分享它可能很有用,因为当我早些时候查看时,似乎没有确切问题的答案。
我遇到奇怪行为的原因是在项目上不起作用,我有一个布局页面,其中包含几个@Html.Action调用。这些调用是针对在筛选器添加授权属性时获得授权的控制器。因此,为了让 AllowAnonymous 在我的方法上工作并一直显示页面,AllowAnonymous 还需要添加到从 Html.Action 调用的子方法中。
这并不明显,因为在调试中,正在调用 AllowAnonymous 的主要操作!
希望这对某人有所帮助。