ほとんどの場合、認証なしでアクセスされるASP.NETMVC4Webページがあります。管理者専用アクセス用に保護したい単一のページがあります(具体的には、ELMAHのエラーログ)。管理者ログインは1回だけで済むので、ユーザー/パスワードデータベースの管理が複雑になるのを避けたいと思います。
調査を行ったところ、以前のバージョンのASP.NETでは、web.configで暗号化されたパスワードを使用してフォーム認証を使用できることがわかりました。
<forms loginUrl="Admin" name=".ASPXFORMSAUTH">
<credentials passwordFormat="SHA1">
<user name="admin" password="encryptedPassword" />
</credentials>
</forms>
次に、認証コントローラーはとを使用FormsAuthentication.Authenticate
しFormsAuthentication.RedirectFromLoginPage
て、入力された資格情報を検証します。ただし、次の理由により、このソリューションの使用を躊躇しています。
FormsAuthentication.Authenticate
APIは廃止されました。FormsAuthentication.RedirectFromLoginPage
を返すのではなく、ユーザーを直接リダイレクトしますRedirectResult
。これはMVCコントローラーパイプラインに従わないため、単体テストなどはより困難になります。
MSDNのサンプルとデフォルトのテンプレートを見ると、WebMatrixのWebSecurity.Login
APIがMVCアプリケーションでフォーム認証を行うための新しい標準であるように見えます。しかし、ローカル(つまり構成ベース)の認証プロバイダーを使用する方法が見つかりませんでした。
ローカル認証を行うための推奨される方法はありますか、それともこれは悪い習慣と見なされますか?外部の依存関係を利用せずに管理者認証を提供する最も簡単な方法は何ですか?