4

ASP.NET MVCで新しいプロジェクトを開始したばかりです。これは、このテクノロジを実際に使用する最初のプロジェクトになります。Visual Studio 2010を使用して新しいプロジェクトを作成すると、SQLサーバーに「aspnet_」プレフィックスが付いた一連のテーブルが作成されました。それらの一部は、組み込みのユーザーアカウントと権限サポートを扱います。

ここで、ユーザーに関する特定の情報を保持したいと思います。私の質問は、「ユーザーアカウントの情報に関する私のニーズを満たすために、このaspnet_テーブルの構造を変更することは良い習慣ですか?」です。

そして、私が思うに、答えは「いいえ」です。(なぜ正確に?)、私は自分の「ユーザー」テーブルを作成するつもりです。aspnet_Usersテーブルと自分のカスタムUsersテーブルのレコードを接続するための良いアプローチは何ですか。

関係を1:1にし、データベースのデザインをc#コードで可能な限り透過的にする必要があります(重要な場合は、linq to sqlを使用しています)。また、ユーザー名とパスワードをaspnet_テーブルから自分のテーブルに複製してデータを維持したくありません。

ビューを使用してそれらに参加することを検討しています。これは良い考えですか?

前もって感謝します!

編集:答えから、私は私が何を望んでいるのか、十分に明確ではないかもしれないことがわかります。問題は、デフォルトのasp.netプロバイダーを使用するかどうかではなく、私のニーズに合わせてどのように採用するかです。

4

3 に答える 3

4

カスタム メンバーシップ プロバイダーを作成し、それらのaspnet_xテーブルを完全に省略します。joinこれらのテーブルと nhibernate マッピングを使用したカスタム テーブルを使用するとどうなるかを見てきました- 純粋な悪夢です。

于 2010-02-23T08:31:50.507 に答える
1

サイトでメンバーシップ API を使用することを選択している場合、このリンクには、ユーザーに追加情報を追加する方法に関する情報が含まれています。

私は最近同じシナリオに直面し、メンバーシップ機能を捨ててしまい、DotNetOpenAuth ライブラリと連携して独自の db ソリューションを展開しました。

于 2010-02-23T01:48:52.460 に答える
-1

asp.netでメンバーシップシステムを使用することには、長所と短所があります。検証、ユーザー登録、パスワードのリセットについて心配する必要がないため、簡単に開始できます。(テーブル構造を変更する場合は注意してください。生成されたビュー/ストアドプロシージャでテーブル構造を変更する必要があります。

ただし、メンバーシップを使用することには欠点があり ます。メンバーシップAPIには制限があるため、2つの別々のシステムを維持する必要があります。たとえば、メンバーシップAPIを使用してトランザクション内で操作を実行することはできません。(TransactionScopeを使用しない限り、私は思いますが、他の選択肢はありません)。

有効な代替手段は、独自のセキュリティ検証ルーチンを実装し、FormsAuthenticationを使用することです。このようにして、ユーザーテーブルを完全に制御し、メンバーシップAPIへの依存関係を削除します。

于 2010-02-23T01:43:04.883 に答える