4

私は、Symfony2 を使用するフロントオフィスと ASP.NET MVC4 を使用するバックオフィスを持つ Web アプリケーションを持っています (あなたが私に言う前に、はい、これはばかげた設定であることは知っていますが、これらは私たちが従わなければならない制約です)。

ユーザーがフロントオフィス (SF2) とバックオフィス (MVC4) の両方にログインできるデータベースに 1 つのユーザー テーブルを作成したいと考えています。FOSUserBundle を使用して Symfony2 側でユーザーを管理していますが、アプリの MVC4 部分にどのメンバーシップ プロバイダーを使用するべきか決めていません。これは主に、ASP 側でユーザーを認証する方法がわからないためです。

FOSUserBundle は、ユーザーの登録/パスワードの変更時に、SHA512 を 5000 回反復して使用します。ハッシュ化されたパスワードとパスワード ソルトの両方がデータベースに保存されます。これはすべて正常に機能します。問題は、MVC4 アプリケーションでこのデータをどのように使用すればよいかわからないことです。ハッシュアルゴリズムなどを変更できるかどうかを確認するためにいくつかの調査を行いましたが、これにはカスタムメンバーシッププロバイダーを作成する必要があり、MVC4 を使用したことがない人にとっては少し気が遠くなります。

誰かが私を正しい方向に向けることができますか? それは大歓迎です。

4

1 に答える 1

2

write a custom membership providerデータベースにクエリを実行できます。基本的に、使用するメソッドから派生しMembershipProviderて実装するクラスを作成する必要があります。多くのメソッドがありますが、おそらくすべてをオーバーライドする必要はありません。たとえば、ValidateUserメソッドはユーザー名とパスワードを受け取り、状況を処理するのはあなた次第です。

例えば:

public class MyCustomMembershipProvider: MembershipProvider
{
    ...
}

次に、このカスタム メンバーシップ プロバイダーを web.config に登録して、既定のものを置き換えることができます。

<membership defaultProvider="MyCustomMembershipProvider">
    <providers>
        <clear/>
        <add name="MyCustomMembershipProvider" 
             type="MvcApplication1.Providers.MyCustomMembershipProvider" />
    </providers>
</membership>

LogOn アクション内で を呼び出すとMembership.ValidateUser、カスタム プロバイダーに委任されます。

于 2013-01-14T17:26:53.700 に答える