2011-08-09 8 views
1

ASP.NET Webformsでは、ユーザー名/パスワードを取得し、認証して移動するための401チャレンジを提示したHTTPモジュールがありました。 SSLを介した基本認証では、さまざまなブラウザ間で互換性があり、クレデンシャルの確認に中央データベースストアを使用しました。ASP.NET MVC 3現在のWebユーザチャレンジ?

最新のMVCビットで、私は同じことをする方法を探しています。それを行うための適切な/現代的な方法は何ですか?フォーム認証は最近の唯一の方法ですか?使い慣れた「ログオンボックス」をユーザーに提示する必要があります。

ありがとうございました。

+0

何か:http://cacheandquery.com/blog/2011/03/customizing-asp-net-mvc-basic-authentication/ – Snowy

答えて

1

最近はフォーム認証が唯一の方法ですか?

フォーム認証は単なる認証方法です。また、Windows統合認証、基本、ダイジェスト、OpenIDなどのスキームを使用することもできます。しかし、どのタイプの認証を使用していても、ASP.NET MVCでは[Authorize]属性でコントローラ/アクション(認証が必要)を装飾します。また、より多くの制御が必要な場合は、標準の認証属性から派生したカスタム認証属性を記述することもできます。

+0

@SnowyをHTTP基本認証は、HTTPモジュール経由で実装したものです。この回答でDarinが言及したように、MVCは他のスキームの中でそれをサポートしています。 –

+0

私は以前にBasic Authをやったことを理解します。私は今、基本認証をしたいです。私はBasic用のHTTPモジュールと過去のダイジェストをハンドリングしましたが、今はBasic(データベースに対する認証を確認する)が必要です。 MVCで基本認証を行うためのリソースはありません。助けて? – Snowy

0

まだこのモジュールを使用しようとしている場合は、多くのURLとURLアクセスを煩雑にする変更があるため、MVCではURLベースの認証が難しい可能性があります。 RESTful URLは頻繁に変更され、複数のURL(ok URI)は同じ場所にマップできます。 MVCでは、Darin氏が指摘したように、重要なことは、コントローラークラスまたはメソッドで[Authorize]を使用することです。ここでのアイデアは、URIが現在のリソースにアクセスするために使用されたものであっても、アクセス権が正しいことがわかります。

属性が処理されると、ユーザーロールメンバーシップがチェックされ、必要なログインURLにリダイレクトされません(インスタンスフォームauthの場合)。これは、ユーザーが「何らかのアクション」を行うように認証プロバイダによって設定できます許可されていません。 Windows認証の場合は、401のチャレンジで実行されるようにログインダイアログが表示されます。これは、おそらくあなたのメソッドを使用する可能性があると言う理由です。

例として

のWindows認証がここで行われます:完璧な発見Windows Auth in MVC

関連する問題