質問: ASP.NET Identity を用いてログイン機能の実装をしようと考えています。 Identityについて2つ手が打てなくて困っているので質問しようと思い登校します。 プロジェクトを作成した際に自動生成されたヘッダー右上の"登録"から、ユーザーを登録し生成される以下の5種類のテーブルを任意の接続先に変更することができたというところまでが現状の理解していることです。 * AspNetRoles * AspNetUserClaims * AspNetUserLogins * AspNetUserRoles * AspNetUsers 以下、疑問点です。 ここで自動生成されるこれらの5つテーブルの名前を生成の時点で任意のものに変更し使用することはできないでしょうか。 もし、できない場合はASP.NET開発ではテーブルの名前やテーブルのデータの中身を任意のものにしたい場合のログイン機能の開発はASP.NET Identityが自動生成していることをログイン機能を自力で作成するのが普通なのか、それともテーブル形式はASP.NET Identityに合わせることが主流なのかを教えていただけるとありがたいです。 質問する際には自分で試したことを記すべきであるのにもかかわらず、なにのどこが問題の核心かわからずソースコードを記せず申し訳ありません。 使用環境等 Windows7 VS2017 ASP.NET MVC5 Net Framework 4.6.1
回答: まず、最初の質問の、 > > ここで自動生成されるこれらの5つテーブルの名前を生成の時点で任意のものに変更し使用することはできないでしょうか。 > > > ですが、それは上のコメントにも書きましたように変更できません。その必要もないはずです。 質問者さんの前のスレッド で Model から EF Code First で DB を生成した経験があるはずですが、TopicTitles という名前のテーブルと、その中に Id, Title という名前のフィールドができたと思います。 それを変更するには Model に定義したクラス名・プロパティ名を変更して DB を作り直す必要があるのは理解されているでしょうか? ASP.NET Identity の場合、テーブル名・フィールド名の基になるクラス名・プロパティ名はクラスライブラリ内に定義されているので変更できません。(何か自分が知らない裏技的な手段があるかもしれないということは否定しきれませんが) > > 自分で以前「こういうような設計にしよう」と考えて作ったテーブルとそのまま同じ名前で使えたら製作がしやすいと考えてのことでした。 > > > 少なくとも「製作がしやすい」ということは絶対にないです。 SQL Server ではなくて独自の DB を使う必要があるとか Entity Framework は使えないなどの事情があるなどでやむを得ないということなら、以下の記事の「ASP.NET Identityで独自の認証処理を行う」と「ASP.NET Identityで任意のデータストアを使う」に書かれている手段があるそうですが。 「ASP.NET Identity入門」連載一覧 でも、そんな必要はないですよね? > > 絶対の理由がないため、デフォルトで設定されたテーブルを用いたほうがはるかに容易でありそうなので、このままでも良いかな、 > > > 上に述べたような必要がなければその通りです。