如何创建控制器部分类来覆盖 OnAuthorization?

发布于 2024-08-30 10:30:26 字数 531 浏览 6 评论 0原文

我正在尝试更改方法 OnAuthorization,以便它可用于任何应用程序...这样:

public partial class Controller
{
    protected override void OnAuthorization(AuthorizationContext filterContext)
    {
        if ((string)(filterContext.RouteData.Values["action"]) == "test")
        {
            filterContext.Result = new HttpUnauthorizedResult();
        }
    }

}

但显示编译错误:

Controller.OnAuthorization(System.Web.Mvc.AuthorizationContext)': 否 找到合适的方法来覆盖

有人可以帮助我吗?

I'm trying to change the method OnAuthorization, so that it is available for any application ... this way:

public partial class Controller
{
    protected override void OnAuthorization(AuthorizationContext filterContext)
    {
        if ((string)(filterContext.RouteData.Values["action"]) == "test")
        {
            filterContext.Result = new HttpUnauthorizedResult();
        }
    }

}

but is showing the compilation error:

Controller.OnAuthorization(System.Web.Mvc.AuthorizationContext)': no
suitable method found to override

Can someone help me?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鹿港小镇 2024-09-06 10:30:26

您必须创建自己的基本控制器类:

public partial class BaseController : Controller
{
    protected override void OnAuthorization(AuthorizationContext filterContext)
    {
        if ((string)(filterContext.RouteData.Values["action"]) == "test")
        {
            filterContext.Result = new HttpUnauthorizedResult();
        }
    }
}

在代码中使用 BaseController。

请记住,filterContext.RouteData.Values["action"] 可以是 TestTESTtEST

You have to create you own base controller class:

public partial class BaseController : Controller
{
    protected override void OnAuthorization(AuthorizationContext filterContext)
    {
        if ((string)(filterContext.RouteData.Values["action"]) == "test")
        {
            filterContext.Result = new HttpUnauthorizedResult();
        }
    }
}

Use BaseController in your code.

And remember that filterContext.RouteData.Values["action"] can be Test or TEST or tEST.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文