言語/技術情報
- ASP.net MVC 4 は VB とカミソリで書かれています。(インターネット テンプレートから作成)
- MySQL 5.5
- Visual Studio 2012 Express for Web (まもなく Professional にアップグレードされます)
要件
ASP.net MVC 4 アプリケーションにメンバーシップとロールを実装する必要があります。この目的のために利用したいユーザーテーブルを備えた既存のMySQLデータベースがあります。
ただし、時間の制約と、ASP.net MVC 開発に比較的慣れていないため、技術的なコーディングや書き直しをできるだけ少なくしたいと考えています。
以下は、既存の users テーブルに対する create ステートメントの主要部分です。
CREATE TABLE `User` (
`User_ID` int(11) NOT NULL AUTO_INCREMENT,
`Company_ID` int(11) NOT NULL,
`Email` varchar(255) NOT NULL,
`Firstname` varchar(255) NOT NULL,
`Surname` varchar(255) NOT NULL,
`Password` varchar(128) NOT NULL,
`Password_Salt` varchar(128) NOT NULL,
`Status` int(11) NOT NULL DEFAULT '1',
`Created` datetime DEFAULT NULL,
`Modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`User_ID`))
ある程度の柔軟性があり、Users テーブルのフィールドの一部を追加または削除できますが、User_ID フィールドと Company_ID フィールドは非常に重要であり、少なくとも 6 つの他のテーブルで外部キーとして使用されるため、そのままにしておく必要があります。
また、ユーザー名フィールドを使用する必要はありません。代わりに、すべてのアカウント ログインで電子メール フィールドを使用する必要があります。
現在のプレイ状況
現時点では、自動生成されたテーブルのデフォルト セットを使用して、標準の MySQLMembershipProvider を正常にセットアップしてテストすることができました...
my_aspnet_applications
my_aspnet_membership
my_aspnet_profiles
my_aspnet_roles
my_aspnet_schemaversion
my_aspnet_sessioncleanup
my_aspnet_sessions
my_aspnet_users
my_aspnet_usersinroles
理想的な世界では、my_aspnet_users テーブルを置き換え (プロセス内の他のすべてのテーブルを削除)、独自の Users テーブル (およびロール テーブル構造) を利用することをお勧めします。ただし、これにはカスタム MembershipProvider の作成が含まれることを理解しています。これは、今のところ避けたいものです。迅速で、車輪の再発明を必要としないものが必要です。
当面は、キーを使用してデフォルトの Membership users テーブルと自分のテーブルをリンクすることにします。
質問
- my_aspnet_users とユーザーの間のリンクを作成する最良の方法は何ですか?
- プロバイダーがメールアドレスのみを使用するように制限するにはどうすればよいですか?
- ログインしているユーザーに応じて、Users テーブルから姓名と会社 ID を取得するにはどうすればよいですか? (ログイン時にメールアドレスの代わりにユーザー名を表示するためなど)
- 似たようなことをするのに役立つ記事、チュートリアル、またはビデオを見つけた人はいますか?
これに関して誰かが提供できる支援を前もって感謝します。