최근 출시된 Visual Studio 2013 Developer Preview에 포함된 ASP.NET MVC 5를 통해 개발자는 다양한 타사 공급업체 또는 사용자 지정 인증 공급자를 사용할 수 있는 인증 필터를 적용할 수 있습니다. 사용자. 그러나 이러한 필터는 인증 필터를 호출하기 전에 적용됩니다.
인증 필터를 만들려면 개발자는 새 C# ASP.NET 프로젝트를 만들고 나열된 프로젝트 유형에서 MVC를 선택해야 합니다. Kunz, Leigh & Associates의 수석 소프트웨어 개발 엔지니어인 Eric Vogel은 인증 필터 사용을 테스트했습니다. 그는 사용자가 인증되지 않은 경우 로그인 페이지로 다시 리디렉션하는 사용자 지정 필터를 만들었습니다.
Eric은 CustomAttributes 디렉터리와
ActionFilterAttribute和IAuthenticationFilter: public class BasicAuthAttribute: ActionFilterAttribute,IAuthenticationFilter
을 상속하는 새 클래스 CustomAttribute를 만들었습니다. IAuthenticationFilter 인터페이스의 OnAuthentication() 메서드를 사용하여 필요한 인증을 수행할 수 있으며 OnAuthenticationChallenge 메서드는 다음을 제한합니다. 신원을 기반으로 인증된 사용자에 대한 액세스.
OnAuthenticationChallenge 메소드는 AuthenticationChallengeContext 매개변수를 수신하며 구현 코드는 다음과 같습니다.
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