0

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

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

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

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

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

谢谢

4

1 回答 1

2

I tried creating a custom authorization filter using AuthorizeAttribute and AuthorizeCore, but when the authorization fails it is trying to redirect to Login screen. which I don't need.

You could override the HandleUnauthorizedRequest method and return whatever ActionResult you want. For example if you wanted to render an error view you could return a ViewResult:

protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
    var viewResult = new ViewResult();
    viewResult.ViewName = "~/Views/Shared/Unauthorized.cshtml";
    filterContext.Result = viewResult;
}
于 2013-06-04T07:23:19.407 回答