【问题标题】:MVC Custom Filter to Authorize User and send some response backMVC 自定义过滤器以授权用户并发回一些响应
【发布时间】:2013-06-04 15:23:19
【问题描述】:

我有一个特殊的场景,我需要授权所有用户检查他们是否可以执行控制器方法。如果他没有被授权执行操作。我需要发回一些消息以查看以表明相同。我需要满足以下情况。一个项目被分配给一个用户,只有那个用户可以对该项目进行更改(分配给其他人/取消等),其他人不能执行它。另一方面,其他用户可以尝试先将项目分配给自己并对其执行操作。所以我需要捕捉的2个案例是

  1. 当用户尝试将未分配给他的项目分配给自己时,我需要向视图发送一些响应,表明该项目已被 XXX 用户锁定并提供用户覆盖它。

  2. 当用户尝试对未分配给他的项目执行其他操作时,只需将一些消息响应发送回查看

我尝试使用 AuthorizeAttribute 和 AuthorizeCore 创建自定义授权过滤器,但是当授权失败时,它会尝试重定向到登录屏幕。我不需要。我需要发回一些有用的信息。

希望我清楚。非常感谢任何帮助。

谢谢

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-4 filter


    【解决方案1】:

    我尝试使用创建自定义授权过滤器 AuthorizeAttribute 和 AuthorizeCore,但是当授权失败时 它正在尝试重定向到登录屏幕。我不需要。

    您可以覆盖HandleUnauthorizedRequest 方法并返回您想要的任何ActionResult。例如,如果你想呈现一个错误视图,你可以返回一个 ViewResult:

    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        var viewResult = new ViewResult();
        viewResult.ViewName = "~/Views/Shared/Unauthorized.cshtml";
        filterContext.Result = viewResult;
    }
    

    【讨论】:

      猜你喜欢
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多