ホームページ  >  記事  >  バックエンド開発  >  asp.net mvc 5 はフィルターベースの認証を改善します

asp.net mvc 5 はフィルターベースの認証を改善します

伊谢尔伦
伊谢尔伦オリジナル
2016-11-24 13:22:001557ブラウズ

最近リリースされた 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 クラスに適用します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:C# の今後の計画次の記事:C# の今後の計画