我有一个 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/