ホームページ >バックエンド開発 >C#.Net チュートリアル >asp.net mvc 5 はフィルターベースの認証を改善します
最近リリースされた 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 クラスに適用します。