gpt4 book ai didi

c# - AllowAnonymous 不工作 MVC5

转载 作者:太空狗 更新时间:2023-10-29 19:59:34 25 4
gpt4 key购买 nike

我正在使用自定义过滤器(定义如下):

        if (user == null || !user.Active)
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary
{
{"controller", "Home"},
{"action", "NotAuthorized"}
});
}
base.OnActionExecuting(filterContext);

这是在站点范围内运行的(在 FilterConfig.cs 内的 RegisterGlobalFilters() 中。但是,我想允许访问一个页面 - NotAuthorized 页面。在 HomeController 中,我已创建以下 ActionResult 方法:

    [AllowAnonymous]
public ActionResult NotAuthorized()
{
return View();
}

未经授权确实会导致用户进入此 View ,但会导致重定向循环(可能是因为过滤器仍在该页面上运行)。

如何允许匿名用户访问此页面?

最佳答案

您需要检查自定义过滤器中的属性。

尝试:

if (!filterContext.ActionDescriptor.IsDefined(typeof(AllowAnonymousAttribute), false)
&& !filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof(AllowAnonymousAttribute), false)
&& (user == null || !user.Active))
{
//....
}

关于c# - AllowAnonymous 不工作 MVC5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29498683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com