如何創建自定義授權屬性?
public class MyAuthorizationAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
//Authorization logic
if(httpContext.User.Identity.Name.Equals("Alice"))
{
return true;
}
}
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
//Handle unauthorized logic
}
}
然後該自定義屬性附加到一個控制器
[MyAuthorization]
public class HomeController : Controller
{
public ActionResult About() {}
public ActionResult Contact() {}
}
的AuthorizeCore
- 方法將每次在HomeController
調用一個動作的時間運行。
然而,如果你不希望授權,針對具體的行動上運行,你可以用[AllowAnonymus]
[AllowAnonymus]
public ActionResult Home()
{
//Everyone can run this action
return View();
}
不工作註釋它們....這個自定義屬性不會被調用。 我可能會做錯什麼? – 2014-09-05 10:39:18
我更新了一些代碼並添加了附加信息 – 2014-09-05 13:19:36
仍然無法調用AuthorizeCore。 – 2014-09-08 05:36:47