using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace HypeKick.BankUI.Controllers
{
public class ErrorController : Controller
{
//
// GET: /Error/
public ActionResult Index()
{
return View();
}
public ActionResult NotAuthorized()
{
return View();
}
}
}
1 回答
好。由于没有办法覆盖[1]属性,全局和就地,这就是我完成它的方法。
在应用程序的全局命名空间中创建一个新的自定义
AuthorizeAttribute
类(我称之为CustomAuthorizeAttribute
)。我将这个类文件放在一个名为Extend
的文件夹中(我在扩展 MVC 框架时放置了所有自定义类),并确保命名空间与我的应用程序的根命名空间相同(这样所有控制器都可以“看到”它)。我的
CustomAuthorizeAttribute
考虑了经过身份验证的用户方案和 reroutes/redirects。然后,您需要将
[CustomAuthorize(Roles="Admin")]
(使用已为应用程序配置的角色)添加到要进行详细检查的控制器 and/or 操作中。另外,我创建了一个
ErrorController
来处理错误,并为我的需求添加了一个“NotAuthorized”操作。如果你愿意,你当然可以扩展它。也许包括一些伐木?别忘了创建必要的视图!