Users
ASP.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) を使用することです。