私は、Entity Frameworkを使用してデータベースにアクセスする従来のアプローチを使用しないMVC 3アプリケーションを作成しています。代わりに、データベースアクセスを管理するために使用されるWCFサービスを組み合わせた別のアプリケーションがあります。今では、MVCアプリケーションでこれらのサービスをデータベースアクセスとして使用したいと考えています。この部分はシンプルです。このシナリオでは、認証と認可の管理が難しくなります。サービスクライアントをデータベースアクセスレイヤーとするASP.NET MVC 3
認証と承認のために、カスタムメンバーシップとロールプロバイダを作成しました。私は必要な方法を実装しましたが、ここで私は問題に遭遇しました。私のサービスでは、ユーザーの役割のリストを取得するためにユーザー名とパスワードが必要です。
ログオン時にユーザーの提供するユーザー名とパスワードをアプリケーションのバックアップのどこかに保存して、保存されていることを確認し、自分の役割プロバイダーで使用できるようにするにはどうすればいいですか?
セッションが正しい選択ですか?もしそうなら、私はどのように私の役割提供者のユーザーのセッションにアクセスできますか?
私は、WCFサービスの最後のレベルにパスワードハッシュを使用します。しかし、それはMVCアプリケーションに信用情報を格納する私の問題を解決しません。 – domderen
@Tromaxなぜあなたはそれらを保存したいですか?ユーザーは、認証Cookieを使用してリクエストを行うたびに渡されます。 –
とにかく、あなたのIsUserInRoleメソッドでは、userNameとroleNameだけがパラメータとして使用できます。つまり、設計上、ここでユーザーのパスワードハッシュを持つ必要はありません。あなたはすでにあなたがそのユーザーを認証していることを知っているので、ユーザーの主な関心事はユーザーの持つ役割です。 –