2012-04-23 16 views
1

ASP.NET MVCでの認証の仕組みを理解しようとしています。私は組み込みのMembershipProviderが舞台裏でローカルデータベースを作成しないようにします。また、カスタムメンバーシッププロバイダーについてのブログ記事を見てきました。はるかに簡単なフォーム認証モデルを探している間、私は次のよう見つかり:プロバイダなしのASP.NET MVCでユーザーを認証する簡単な方法

FormsAuthentication.SetAuthCookie("myusername", true); 
FormsAuthentication.SignOut(); 

アイデアは、データベースにユーザ名と塩漬けハッシュされたパスワードを送信し、彼らはそこにレコードを一致させるかどうかを確認することです。ユーザーが存在する場合は、ユーザー名をSethAuthCookieに渡します。私の質問は次のとおりです:

  • ユーザ名は暗号化する必要がありますか?
  • 複数のサーバがあり、ユーザがウェブサイトをサーフィンしている場合はどうなりますか?私はサーバーのいずれかがユーザーにコンテンツを提供できると信じているので、ユーザーが認証されているかどうかをどのように知っていますか?
  • プロバイダーなしでMVCのユーザーを認証する好ましい方法は何ですか?私は正しい道を歩いているのですか、私は別のものを探していますか?

答えて

3

ユーザー名は暗号化する必要がありますか?

が複数のサーバーがあり、ユーザーが ウェブサイトをサーフィンしている場合はどうなりますか?私はサーバのどれかが ユーザにコンテンツを提供できると信じているので、ユーザが認証されているかどうかをどのように知っていますか?各要求で

サーバがクライアントのブラウザによって送信され、FormsAuthentication.SetAuthCookie呼び出しによって生成された認証クッキーを読み込み、それを復号化し、内部に保存されているユーザー名を取得します。サーバーファームのすべてのノードに対して同じマシンキーを設定して、どのノードが認証Cookieを発行しても、他のすべてのノードがそれを復号化できるようにしてください。

プロバイダーを使用しないMVCのユーザーを認証するには、どのような方法が適していますか?正しい軌道にいるのですか、それとも 何か他のものを探していますか?

あなたは正しい方向にあります。パスワードハッシュがデータベース内のユーザーのパスワードハッシュと一致することを確認した後に、プロパティを使用して現在認証されているユーザーを取得できるようになったら、FormsAuthentication.SetAuthCookieメソッドを使用して認証Cookieを発行します。

また、following articleをチェックすることをお勧めします。これは、ASP.NETでフォーム認証がどのように機能するかの概要を示しています。

関連する問題