ASP.NET MVC 4 のカスタム データベース スキーマを使用した SimpleMembership 質問する

ASP.NET MVC 4 のカスタム データベース スキーマを使用した SimpleMembership 質問する

UsersASP.NET MVC 4 の SimpleMembership API を有効にして、独自のデータベース スキーマと統合したいと考えています。データベースには、次のフィールドを持つ単純なテーブルがあります。

  • 識別子
  • 名前
  • パスワード
  • Eメール
  • 削除済み

データベースを使用するために SimpleMembership API をすでに構成しています。

WebSecurity.InitializeDatabaseConnection("MyStuff", "Users", "Id", "Name", autoCreateTables: true);

ユーザーを挿入することもできます:

WebSecurity.CreateUserAndAccount(model.UserName, model.Password, 
                                 new 
                                 { 
                                        IsDeleted = false, 
                                        Email = "[email protected]"                
                                 });

ただし、パスワード フィールド (またはそのハッシュ) は (当然ですが) Users テーブルには挿入されず、webpages_Membership呼び出しで作成されたという別のテーブルに挿入されInitializeDatabaseConnection、必要のない情報が多数含まれています。

また、webpages_OAuthMembership、webpages_Roles、webpages_UsersInRoles という、必要のない他の自動作成されたテーブルもあります。

すでにテーブル生成を false に設定しようとしました:

WebSecurity.InitializeDatabaseConnection("MyStuff", "Users", "Id", "Name", autoCreateTables: false);

ただし、この場合、CreateUserAndAccount 呼び出しでは webpages_Membership テーブルが見つからないため例外がスローされます。

SimpleMembership API を使用する場合は、これらのテーブルが必要になるようです。

私の質問は、このようなシナリオで、単純なUsersテーブルだけが必要な場合、どうすればいいかということです。

メンバーシップ処理と認証ロジック (ハッシュ コード生成など) 全体を自分で記述する必要がありますか?

ベストアンサー1

私は製品チームにも同じ質問をしました。

SIMPLE メンバーシップの設計目標は、できるだけシンプルにすぐに使えるようにすることでした。

したがって、テーブルに関する限り、カスタマイズは実際には不可能です。推奨される回避策は、引き続き ASP.NET メンバーシップ (SqlMembershipProvider) を使用することです。

おすすめ記事