質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

1回答

5434閲覧

ASP.NET identity で自動生成されるテーブルの名前変更

pomu.pomupomu

総合スコア18

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2018/06/17 09:28

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/06/17 11:20

そのまま、デフォルトで設定されたテーブル名を使っておけばよいと思うのですが、変更しなけれなならない理由はなんでしょう? そのあたり、回答者・閲覧者の皆さんがなるほどとと思う理由を書かれた方が、レスが付きやすいと思うのですが。
退会済みユーザー

退会済みユーザー

2018/06/18 01:24

変更したい理由を答えられませんか? テーブル名の変更はできませんし、そもそも変更する必要はないと思いますが、何か理由があればそれを書いてもらえれば代案が出てくるかもしれないので、聞いているのですが・・・
pomu.pomupomu

2018/06/19 21:32

申し訳ありません、体調を壊しており返信が遅れてしまいました。自分で以前「こういうような設計にしよう」と考えて作ったテーブルとそのまま同じ名前で使えたら製作がしやすいと考えてのことでした。絶対の理由がないため、デフォルトで設定されたテーブルを用いたほうがはるかに容易でありそうなので、このままでも良いかな、と返信を見て今は思っております。
guest

回答1

0

ベストアンサー

まず、最初の質問の、

ここで自動生成されるこれらの5つテーブルの名前を生成の時点で任意のものに変更し使用することはできないでしょうか。

ですが、それは上のコメントにも書きましたように変更できません。その必要もないはずです。

質問者さんの前のスレッド https://teratail.com/questions/131189 で 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入門」連載一覧
https://codezine.jp/article/corner/511

でも、そんな必要はないですよね?

絶対の理由がないため、デフォルトで設定されたテーブルを用いたほうがはるかに容易でありそうなので、このままでも良いかな、

上に述べたような必要がなければその通りです。

投稿2018/06/20 01:26

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pomu.pomupomu

2018/06/20 09:29

おっしゃる通り、必要ないです。製作のしやすさを優先しようと思います。 また、「言われてみればその通りだ!」と改心したのですが、DBのテーブルを変更する際にはモデルも修正する必要があるというのも勉強になりました。 丁寧にご指導していただけてとても助かりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問