2

私はSQLMembershipProviderを使用しており、ユーザーに関する詳細情報を追加したいと考えています。新しいDBを作成し、作成されるたびに新しいユーザーごとにエントリを作成するには、これを行う最善の方法はありますか?もしそうなら、私の新しいDBのusersテーブルのPKとしてSQLMembershipProvider UserID値を使用しない理由がありますか?ASP.NETメンバーシッププロバイダを拡張すると、PK == FK == OK?

また、新しいDBに新しいUserIDを作成し、SQLMembershipProvider UserIDをFKとして使用する理由はありますか?

+0

これは当然追加しようとしている情報の性質によって異なりますが、プロファイル機能を使用して情報を保存することを検討したことがありますか? –

+0

ありがとうブラント。私は前にプロフィールの機能性を知りません。それについての良いイントロですhttp://aspnet.4guysfromrolla.com/articles/101106-1.aspxを読んでください。私は自分のプロファイルプロバイダを作っていない限り、このプロジェクトには適していません。 –

答えて

2

私はそれが動作しないでしょうかあなたは(PKとしてユーザーID)

そのようにすべきではない、なぜ私はあなたがすべてのために個別のデータベースを使用したい理由はわからない理由を考えることはできませんおそらく、現在のデータベースにテーブルを作成し、aspnet_usersテーブルへのFKとしてuseridを使用して設定するだけです。

+0

真。別のDBを使用する理由はありません。私はちょうどテンプレートとしてNerdDinnerプロジェクトを使用していた、彼らはそれで別のDBを使用しました。 –

1

メンバーシッププロバイダを書き換える場合は、すべてのPK列をGUIDからBITINTに切り替えます。私は2つの理由でこれを行うだろう。 1つのシーケンシャル・ナンバーは作業がはるかに簡単であり、2番目にGUID IDの代わりにBIGINTを使用することによるパフォーマンス上の利点があります。私はまた、アプリケーションの他のテーブルを好きにして、SQLメンバーシップ・プロバイダでデフォルトで来るものを削除するために使用できる独自のidカラムを使用します。これを行うには、プロバイダーの各機能のコードを提供する必要があります。小さなタスクではありません。

0

私は、追加のプロパティが含まれMembershipUserから派生したクラス、および派生MembershipUserクラスのインスタンスを作成しますMembershipProvider誘導体と、私の既存のデータベース・スキーマのラッパーを作成しました。

他のサポートAPIは多少限定されているため、メンバーシップ認証と更新メソッドのみを使用します。私は、管理者用の個別の作成/編集ユーザAPIを持っています。

このソリューションは現在、複数のサイトで使用されており、うまく機能します。

関連する問題