2012-07-12 9 views
8

データベースに新しい.NET 4.5 DefaultMembershipProviderテーブル名の接頭辞を付ける方法はありますか?以前はaspnet_Users、aspnet_Rolesなどの名前を使用していましたが、ユーザー、ロールなどの名前が付けられています。これは、テーブルUserを持つアプリケーションスキーマと競合しています。.NET 4.5ユニバーサルメンバシッププロバイダのテーブル名

新しいユニバーサルプロバイダを使用し、この名前付けの問題を回避する場合、メンバーシップに別のデータベースを使用する唯一の方法はありますか?

+0

なぜあなたはそれらを全く同じデータベースに入れていますか?彼らは別々でなければならない。プレフィックスを付けずに独自のテーブルを使用することの知恵に疑問を呈してください。 –

+4

これは意見の問題です。両方を行うのが一般的です。そのため、.NETフレームワークにはaspnet_regsql.exeツールが含まれています。残念なことに.NET 4.5では、このツールは従来のプロバイダを前提としています。 –

+1

また、新しいUniversalプロバイダは、デフォルトの接続文字列を使用して、実行時にデータベースにテーブルを作成します(存在しない場合)。したがって、メンバーシッププロバイダの新しいデータベースを指定しない限り、アプリケーションデータベースに格納されます。 自分のテーブルに接頭辞を付けることは賢明ではないと考えています。私のテーブルは誰のアプリケーションにも注入されていませんが、メンバーシップテーブルは設計通りのものです。 –

答えて

6

現在、ユニバーサルプロバイダのテーブル名をカスタマイズする方法はありませんが、将来的にはこれをサポートすることを検討します。

+0

メンバーシップテーブルに別のデータベースを使用することになりました。 –

+2

"dbo"以外のスキーマを指定できるようになりました。 –

1

DefaultMembershipProviderは、ターゲットデータベース内のデフォルト以外のスキーマ(たとえば、「メンバーシップ」)にマッピングされたログインを使用してSQLに接続することによって、別のスキーマの下でテーブルを使用できます。 SSMSでは、「ログインプロパティ」、「ユーザーマッピング」、「デフォルトスキーマ」を参照してください。こうすれば、アプリケーションの[dbo].[Users][membership].[Users]と競合しません。

関連する問題