我有一个操作想限制为仅角色“管理员”。我是这样做的:
[Authorize(Roles = "Admin")]
public ActionResult Edit(int id)
手动进入 Controller/Edit/1 路径后,我被重定向到登录页面。好吧,这也许还不错,但我想显示 404 而不是它,并尝试坚持使用它的属性。那可能吗?
那可能吗?
当然,您可以编写自定义授权属性:
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 页面。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)