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