gpt4 book ai didi

asp.net-mvc-2 - 如何从 HttpContextBase 获取 ActionExecutingContext

转载 作者:行者123 更新时间:2023-12-04 14:42:49 25 4
gpt4 key购买 nike

我正在努力实现自定义的 AuthorizeAttribute。 AuthorizeCore 覆盖接受 HttpContextBase。如果用户没有正确的角色,那么我想抛出一个错误。我找到了一些代码,我可以在其中设置 MasterName、ViewName 等以将用户重定向到。它使用 ActionExecutingContext:

private void ThrowError(ActionExecutingContext filterContext, string message)
{
var ex = new Exception(message);
var errorInfo = new HandleErrorInfo(ex, filterContext.ActionDescriptor.ControllerDescriptor.ControllerName, filterContext.ActionDescriptor.ActionName);
var viewData = new ViewDataDictionary(errorInfo);

filterContext.Result = new ViewResult { MasterName = MasterName, ViewName = ViewName, ViewData = viewData };
}

是否可以从传递给 AuthorizeCore 覆盖的 HttpContextBase 中获取 ActionExecutingContext?如果没有,有什么建议吗?

感谢您的帮助。

最佳答案

AuthorizeCore您不需要执行任何重定向的方法。您只需要使用 Http 上下文根据用户是否经过身份验证和授权返回 true 或 false。为了将他重定向到错误页面,您需要覆盖 HandleUnauthorizedRequest AuthorizationContext 作为参数传递的方法,您可以处理这种情况。当 AuthorizeCore 返回 false 时将调用此方法,以便您可以采取相应的行动。

关于asp.net-mvc-2 - 如何从 HttpContextBase 获取 ActionExecutingContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4716049/

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