ASP.NET MVC5包括了最近發佈的Visual Studio 2013開發者預覽版,使得開發者能夠運用身份驗證的過濾器,這樣就爲使用第三方組件或者定製的驗證提供了方便。然而,這些過濾器以前被用來調用驗證過濾器。mvc
爲了建立一個驗證過濾器,你須要建立一個C#ASP.NET項目而且從項目類型中選擇MVC模式,Eric Vogel,高級軟件工程師,Kunz,Leigh&Associates已經驗證了經過使用一個已經建立的用戶過濾器能夠使未認證的用戶跳轉到登陸頁面。
Eric建立了一個用戶屬性目錄和一個叫作CustomAttribute的新類,它繼承於ActionFilterAttribute和IAuthenticationFilter。
public class BasicAuthAttribute: ActionFilterAttribute, IAuthenticationFilter
當OnAuthentication()方法包括了IAuthenticationFilter接口時能夠完成任何須要的驗證,OnAuthenticatonChallenge方法根據用戶的角色限制用戶的訪問權限。
public void OnAuthenticationChallenge(AuthenticationChallengeContext filterContext)
{
var user = filterContext.HttpContext.User;
if (user == null || !user.Identity.IsAuthenticated)
{
filterContext.Result = new HttpUnauthorizedResult();
}
}
你能夠經過Eric的博客訪問源代碼。測試BasicAuthAttribute類也很是簡單,只須要將它添加到HomeController類中,而後打開文件添加下面一行代碼:
using VSMMvc5AuthFilterDemo.CustomAttributes;
最後,在HomeController類使用用戶屬性以下所示:
[BasicAuthAttribute]
public class HomeController : Controller
飯後茶餘翻譯覺得樂趣,如有誤,懇請斧正!