2011-01-03 10 views
1

私は自分のサイトでフォーム認証を使用しています。すべてのテーブルとストアドプロシージャをSQL Serverにセットアップしました。唯一のことは、私は本当にこれらのテーブルがすべて必要なのではないと思います。テーブル名の大ファンでもありません。ASP.NETメンバーシップスキーマを変更する

たとえば、私は従業員の認証を使用しているので、テーブル名を "aspnet_Users"から "Employees"に変更するとよいでしょう。そして、私はパーソナライゼーションテーブルが本当に必要ない。しかし、それが何かを壊すかどうかは分かりません。

テーブルやストアドプロシージャをすべて変更することなく変更/削除できますか?

+0

[MVCのカスタムフォーム認証]の複製が可能です(http://stackoverflow.com/questions/4586891/custom-forms-authentication-in-mvc) –

答えて

9

スティーブン、これらのデータベースオブジェクトを追加するにはaspnet_regsql.exeコマンドラインツールを実行しましたか?または、%WINDIR%\Microsoft.Net\Framework\versionフォルダ(バージョンは、使用している.NETバージョンです。)の該当するSQLスクリプトを実行することで、Membershipのさまざまな部分に必要なテーブル/ビュー/ストアドプロシージャを追加できます。 v4.0.30319)。そこ

という名前のファイルを見つけることができますInstallCommon.sqlInstallMembership.sqlInstallRoles.sqlInstallProfile.sqlInstallSqlState.sql、というように。 InstallCommon.sqlを実行し、必要なファイルだけを実行する必要があります。メンバーシップとロールだけが必要な場合は、InstallCommon.sqlInstallMembership.sql、およびInstallRoles.sqlを実行します。この方法では、データベースには、プロファイル、SQL状態などのテーブル/ビュー/ sprocsは含まれません。

私は、ASP.NETが追加したすべてのデータベースオブジェクトを残しておきます。関心のあるサブセットだけを追加する価値があるというだけではなく、後でプロファイルやヘルスモニタリングを実装する必要があるかもしれないので、他のデータベースオブジェクトを用意して の準備ができたらどうでしょうか。

最初の質問に答えてください - いいえ、テーブル名をaspnet_UsersからEmployeesに変更する方法はありません。しかし、従業員に関する情報を格納する独自のテーブル(おそらくEmployeesと呼ばれる)を作成することは珍しいことではありません。このテーブルには従業員を特定のログインアカウントにリンクするaspnet_Usersという外部キーがあります。これがどのように達成されるかについては、Storing Additional User Informationを参照してください。

ハッピープログラミング!

+0

ありがとうScott、そのリンクはまさに​​私です必要です。 – Steven

2

簡単に書いてみませんか?SqlMembershipProvider

編集:いいえ、既定のプロバイダーはそのスキーマを想定しています。私はそれを変更することをお勧めしません。

+0

質問ではありませんが答えは正しいです。これが唯一可能な方法ですが、それはかなり大きな仕事です。 – buc

+0

いいえ、それは答えです。書いているプロバイダは、あなたが一緒にあなたを助けるために1つか2つのサンプルを見つけたら(そしてそこにたくさんの人がいます)、それほど難しくありません。 –

1

認証情報を自分のデータベースに残しておきましたか?

+0

視界から外れています。ちょうど私がそれが好きな方法:) – Greg

1

Scott Mitchellが言及している.sqlスクリプトでは、aspnet_Usersの参照をすべてEmployeesに変更できますが、推奨されません。メンバーシップ/ロールAPIはストアドプロシージャを使用します。したがって、storedProcの名前を変更しないとうまくいくでしょう。

今後のメンバーシップ/ロールのプロバイダやAPIに変更がある場合があります。

また、将来従業員ではないユーザーにアクセス権を与える必要がある場合、名前の変更はその意味を失います。

関連する問題