2

语言/技术位

  • 用 VB 和 razor 编写的 ASP.net MVC 4。(从互联网模板创建)
  • MySQL 5.5
  • Visual Studio 2012 Express for Web(即将升级到专业版)

要求

我需要在我的 ASP.net MVC 4 应用程序中实现成员资格和角色。我有一个现有的 MySQL 数据库,其中包含一个我希望用于此目的的 Users 表。

但是,由于时间限制以及我对 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`))

虽然我有一定的灵活性并且可以从用户表中添加或删除一些字段,但 User_ID 和 Company_ID 字段非常重要并且必须保留,因为它们在至少六个其他表中用作外键。

我也不想使用用户名字段,而是希望所有帐户登录都使用电子邮件字段。

目前的比赛状态

目前,我已经能够使用其默认的自动生成表集成功设置和测试标准 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 表(删除过程中的所有其他表)并使用我自己的用户表(和角色表结构)。但是,我知道这涉及编写自定义 MembershipProvider ,这是我目前宁愿避免的事情,我需要一些快速且不涉及重新发明轮子的东西。

目前,我会通过使用一个键来解决默认的 Membership users 表和我自己的表之间的链接。

问题

  1. 在 my_aspnet_users 和 Users 之间创建链接的最佳方法是什么?
  2. 如何限制提供商仅使用电子邮件地址?
  3. 根据谁登录,我将如何从用户表中检索名字和姓氏以及公司 ID?(在登录时显示用户名而不是他们的电子邮件地址等)
  4. 有没有人发现任何文章、教程或视频对他们有类似或相同的帮助?

非常感谢任何人对此提供的任何帮助,我非常感谢!!!

4

0 回答 0