1

初めて SQL バックエンドを使用して ASP.NET メンバーシップ プロバイダーを使用していますが、臭いがするものに遭遇しました。 ..

メンバーシップ プロバイダーはwebpages_Membership、ユーザー名などのユーザー プロパティを追跡するデフォルトを含むいくつかのテーブルを作成します。アプリケーションのデータベースにはemployees、従業員のすべてのユーザー データを追跡するテーブルがあります。employeesテーブルには一意の識別子がidあり、他の複数のテーブルへの外部キー列として使用され、レコードを更新した人、作成した人、割り当てられた人、コメントを残した人などを追跡します。

私が立てた最初の仮定は、webpages_Membershipテーブル内にビジネス ロジックとフィールドを配置したくない、またはUserId外部キー リレーションシップで列を使用したくないということです。

私が行った 2 番目の仮定は、登録プロセスを完全に制御しており、ユーザーのログインが強制的に電子メールになるため、電子メール アドレス フィールドに基づいwebpages_Membershipてテーブルとテーブルを結合するだけでよいということです。employees

これは今、私の心の中でひどいにおいがするだけです...

この値を取得してデータベース内のテーブルにUser.Identity.Nameクエリを実行し、オブジェクトを取得してレコードにフィールドを設定できるようにするのは間違っているようです。employeesEmployeeId

  • このために私は何をすべきですか?
  • メンバーシップ データとビジネス オブジェクト データを結合する最良の方法は何ですか?
  • 私もそれをする必要がありますか?
  • トランザクションごとにデータベースに戻らないように、従業員オブジェクトをユーザーのセッションに保存する必要がありますか?
4

1 に答える 1

1

どのバージョンの ASP.NET を使用していますか?

最新バージョンの一部を使用している場合は、異なるモデルとデータベース構造を使用できる SimpleMembershipProvider を使用できるためです。

詳細については、Jon Galloway によるこのブログ投稿を確認してください。

于 2013-03-15T17:18:24.370 に答える