<strong>一巩割、Filters</strong>
1.Authentication: 認證過濾器榔至,在任何其它filters或者action之前運行互例,但是可以在authorization過濾器之后再次運行。
2.Authorization:授權過濾器这敬,第二個運行航夺,在認證過濾器之后,其它action之前崔涂。
3.Action:在action執(zhí)行或之后運行阳掐。
4.Result:在結果被執(zhí)行前或之后運行。
5.Exception:僅在Filters冷蚂、Action或Result異常時運行缭保。
<strong>二、使用Authorization Filters</strong>
授權Filters確保只有被允許的用戶才可以執(zhí)行Action蝙茶。
推薦創(chuàng)建一個AuthorizeAttribute類的子類:
public class CustomAuthAttribute : AuthorizeAttribute
{
private bool localAllowed;
public CustomAuthAttribute(bool allowedParam)
{
localAllowed = allowedParam;
}
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (httpContext.Request.IsLocal)
{
return localAllowed;
}
else
{
return true;
}
}
}
該授權Filter阻止本地請求的訪問艺骂。
使用自定義的授權Filter:
public class HomeController : Controller
{
// GET: Home
[CustomAuth(false)]
public string Index()
{
return "This is the Index action on the Home controller";
}
}
大多數情況下,會使用內置的授權Filters:
public class HomeController : Controller
{
// GET: Home
[Authorize(Users = "admin")]
public string Index()
{
return "This is the Index action on the Home controller";
}
}
<strong>三尸闸、使用Authentication Filters</strong>