我有两个 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/

10-09 10:02