asp.net-mvc - [授权]失败后显示404错误页面

标签 asp.net-mvc asp.net-mvc-3 error-handling authorization

我有一个 Action ,我想只限于角色“Admin”。我这样做是这样的:

[Authorize(Roles = "Admin")]
public ActionResult Edit(int id)

手动进入Controller/Edit/1路径后,我被重定向到登录页面。好吧,这也许还不错,但是我想显示404而不是它,并尝试坚持使用属性。那可能吗?

最佳答案

Is that possible?



当然,您可以编写一个自定义的授权属性:
public class MyAuthorizeAttribute : AuthorizeAttribute
{
    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        filterContext.Result = new ViewResult
        {
            ViewName = "~/Views/Shared/401.cshtml"
        };
    }
}

然后使用它:
[MyAuthorize(Roles = "Admin")]
public ActionResult Edit(int id)

备注:如果未授权用户,则可能要显示401或403页面,而不是未找到文件的404。

关于asp.net-mvc - [授权]失败后显示404错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9503500/

相关文章:

asp.net - Entity Framework 4(使用EDMX),如何将字段添加到数据库实际上没有该字段的模型中

delphi - 我应该如何处理打印机的Gremlin?

mysql - 对 mysql 数据库使用 asp.net mvc “membership” 抛出关键字不受支持。参数名称: attachdbfilename

asp.net-mvc - MVC - 如果图像未在 HTTP post 中重新上传,则不保存空图像数据(来自 SportsStore 示例)

asp.net-mvc-3 - 如何阻止 Ninject 覆盖自定义 DataAnnotationsModelValidatorProvider?

asp.net-mvc - MVC3 Url.Action 查询字符串生成

javascript - asp.net mvc3 Razor ,javascript

php - 引用 - 这个错误在 PHP 中意味着什么?

python - python 中的错误处理

c# - 如何将文件中的 "0x1B"替换为空,即删除