自定义简单成员资格以使用现有表

时间:2013-08-22 09:25:34

标签: asp.net-mvc-4 roles simplemembership

我的存储库模式数据库中有一个User表,我希望连接角色。自定义简单会员资格的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

您应该在位于项目InitializeSimpleMembershipAttribute.cs文件夹中的Filters文件中设置配置。

打开该文件并找到以下行:

WebSecurity.InitializeDatabaseConnection("DefaultConnection", 
                                         "UserProfile", 
                                         "UserId", 
                                         "UserName", 
                                         autoCreateTables: true);

现在,您只需要将您的连接字符串(必须声明为web.config)放入第一个参数,将表名放入第二个参数,将UserId列名放入第3个参数。和UserName列名称进入第4个参数。

关于最后一个参数,如果将其设置为true,如果简单成员资格未在数据库中找到任何必需的表,则会创建它们。

但是,我建议您使用单独的表来实现简单的成员资格,并让SM创建自己的表。之后,您可以通过一段代码将所有现有用户添加到SM表中,如下所示:

var oldUsers = db.Users.ToList();

foreach (User u in oldUsers)
{
    WebSecurity.CreateUserAndAccount(u.UserName, u.Password);
}

之后,您对会员资格和授权工作没有任何问题......