现有表上的ASP.net MVC MembershipProvider for MySQL

时间:2012-11-13 15:52:02

标签: mysql asp.net-mvc asp.net-membership

语言/技术位

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

要求

我需要在我的ASP.net MVC 4应用程序中实现Membership和Roles。我有一个现有的MySQL数据库,其中包含一个我更喜欢用于此目的的用户表。

但是,由于时间限制以及我对ASP.net MVC开发相对较新,我想尽可能少地进行技术编码或重写。

以下是现有用户表的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字段非常重要,并且必须保留,因为它们在至少六个其他表中用作外键。< / p>

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

目前的游戏状态

目前,我已经能够使用其默认的自动生成表集成功设置和测试标准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,这是我现在宁愿避免的,我需要一些快速的东西,而不需要重新发明轮子。

暂时,我会通过使用密钥来确定默认会员用户表和我自己的表之间的链接。

问题

  1. 在my_aspnet_users和Users之间创建链接的最佳方法是什么?
  2. 如何限制提供商仅使用电子邮件地址?
  3. 我如何从Users表中检索名字和姓氏以及公司ID,具体取决于谁登录? (要在登录时显示用户的名称而不是他们的电子邮件地址等)
  4. 有没有人发现任何文章,教程或视频帮助他们使用类似的东西?
  5. 非常感谢任何人可以为此提供任何帮助,我非常感谢!!!

0 个答案:

没有答案