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
饭后茶余翻译觉得乐趣,如有误,恳请斧正!