gpt4 book ai didi

c# - 使用 SimpleMembership MVC 4 创建默认角色和用户 - 代码优先方法

转载 作者:行者123 更新时间:2023-11-30 15:32:10 24 4
gpt4 key购买 nike

我需要为我的 MVC 应用程序创建默认角色(管理员和用户)和默认用户(我的管理员)。我正在使用代码优先方法。我是 MVC 的新手,对迁移了解不多。

我尝试了以下代码,但我的表(webpages_RolesUserProfile)仍然是空白的:

 protected override void Seed(Outliner.Models.OutlinerDbContext context)
{
// This method will be called after migrating to the latest version.

// You can use the DbSet<T>.AddOrUpdate() helper extension method
// to avoid creating duplicate seed data. E.g.
//
// context.People.AddOrUpdate(
// p => p.FullName,
// new Person { FullName = "Andrew Peters" },
// new Person { FullName = "Brice Lambson" },
// new Person { FullName = "Rowan Miller" }
// );
//

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

var roles = (SimpleRoleProvider)System.Web.Security.Roles.Provider;
var membership = (SimpleMembershipProvider)System.Web.Security.Membership.Provider;

if (!roles.RoleExists("Admin"))
roles.CreateRole("Admin");

if (!roles.RoleExists("User"))
roles.CreateRole("User");

if (General.IsNull(membership.GetUser("admin", false)))
{
WebSecurity.CreateAccount("admin", "password");
}
}

满足我的要求的正确方法是什么?

最佳答案

您是否设置了数据库初始化器?

例如,将此代码添加到 Global.asax 中的 Application_Start() 方法

System.Data.Entity.Database.SetInitializer(new OutlinerDbInitializer());

我假设你的初始化类有这个签名:

public class OutlinerDbInitializer: DropCreateDatabaseIfModelChanges<Outliner.Models.OutlinerDbContext context> {
...
}

试着看这个例子:

http://www.itorian.com/2012/10/entity-frameworks-database-seed-method.html

关于c# - 使用 SimpleMembership MVC 4 创建默认角色和用户 - 代码优先方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19561327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com