我要尝试解决这个会员系统1个小一步来......MVC 3基本自定义成员
所以,让我们说:
步骤1,创建一个SQL数据库和在该数据库中我有一个用户表,非常简单,看起来像这样:
Users
UserID int, identity, primary key
UserName nvarchar(25)
UserPassword nvarchar (25)
UserEmail nvarchar (75)
步骤2,创建一个新的ASP.NET MVC3 Web应用程序
第3步,我选择互联网应用templat Ë与Razor视图引擎,并检查使用HTML 5语义标记
第4步,我增加一个ADO.NET实体数据模型
第5步,在实体数据模型向导,我选择从数据库
来生成第6步,我选择我的数据连接,并选择在Web.Config中
步骤7,保存实体连接设置,在实体数据模型向导==>选择您的数据库对象,我把表一检查,在“生成对象名称多重化或单数化”和“在模型中包含外键列”中保留缺省检查单击Finish
步骤8,我生成解决方案
第9步,我右键单击该.edmx文件并选择“添加代码生成项...”
第10步,我添加了一个新的ADO.NET DbContext生成器(然后创建所有表模型)
好吧,所以这是我不知道如何进一步使用内置的帐户/成员资格系统与我的用户表。就目前而言,无论如何,对于这个特定的项目,我不需要角色和什么,只是[授权]功能...
那么,究竟是什么,逐字符合,我需要做的当用户访问网站并注册或登录时,应用程序使用我的用户表?最终,当用户登录时,[授权]装饰将适用于我的用户群。
编辑:感谢olivehour ...下面的变化,增加真心,让这项工作...
步骤10后:(旁注:从用户表中删除的userPassword,你将不需要它)
步骤11,运行aspnet_regsql.exe工具,将ASP.NET的表添加到您的数据库。
第12步,打开您的Web.config文件,从您的EntityFramework connectionString中只复制“数据源”信息,然后粘贴并使用EntityFramework的“ApplicationServices”connectionString“数据源”替换。
步骤13,在解决方案资源管理器中,右键单击Controller目录并添加控制器。此时继续并添加您的UserController
步骤14,在AccountController中的[HttpPost]注册操作方法中,在“if(createStatus == MembershipCreateStatus。成功)”语句,添加以下内容:
TheNameOfYourEntities db = new TheNameOfYourEntities();
User user = new TheNameOfYourProject.User();
user.UserName = model.UserName;
user.UserEmail = model.Email;
db.Users.Add(user);
db.SaveChanges();
步骤15,生成解决方案,全部保存,运行
这个想法曾经一度让我想起这样做,但我担心它会被认为是黑客,但我越想它,其他任何方式都会如此一个黑客,我会试试看。 – 2012-01-27 13:34:13
这不是黑客攻击,而且imho远比将你的appdb捆绑到成员资格提供者或尝试密码加密更清洁。在SSO世界中,将登录外包给提供商变得司空见惯,有时您无法控制。在这些情况下,您不会将密码信息存储在应用程序数据库中。 – danludwig 2012-01-27 14:46:07
感谢olivehour,请查看上面的解决方案,我使用您的建议实施。 – 2012-01-27 15:00:45