ASP.NET MVC 5はフィルタベースの認証を改善

2122 ワード

ASP.NET MVC 5は、最近発表されたVisual Studio 2013開発者プレビュー版に含まれており、開発者がさまざまなサードパーティベンダーまたはカスタム認証プロバイダを使用してユーザー認証を行う能力を提供する認証フィルタを適用することができます.ただし、これらのフィルタは、認証フィルタを呼び出す前に適用されます.
認証フィルタを作成するには、開発者がC#ASPを新規作成する必要がある.NETエンジニアリング、およびリストされたエンジニアリングタイプからMVCを選択します.Kunz、Leigh&Associates社の高度なソフトウェア開発エンジニアEric Vogelは、認証フィルタの使用方法をテストしました.ユーザーが認証に失敗した場合、ログインページにリダイレクトするカスタムフィルタを作成しました.
EricはCustomAttributesディレクトリと新しいクラスCustomAttributeを作成しました.このクラスは継承されています.
ActionFilterAttribute IAuthenticationFilter:

public class BasicAuthAttribute: ActionFilterAttribute,IAuthenticationFilter

インタフェースIAuthenticationFilterのOnAuthentication()メソッドは、任意の必要な認証を実行するために使用することができ、OnAuthenticationChallengeメソッドは、認証されたユーザの認証に基づいてアクセスを制限する.
OnAuthenticationChallengeメソッドは、AuthenticationChallengContextパラメータを受信します.
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

原文:Improved Authentication with Filters in ASP.NET MVC 5