手动初始化Asp.Net Identity表?

时间:2015-08-07 04:43:41

标签: c# asp.net asp.net-mvc asp.net-identity

我创建了一个网站并将其发布到Azure。现在我想保护一些带有身份验证的页面,因此我在Seed的方法Migrations.Configuration中添加了以下代码并将其发布到Azure。

但是,代码甚至在本地运行。表AspNetRoles在本地和Azure SQL服务器上仍为空。我尝试使用Update-Database -Script -SourceMigration:0生成所有SQL语句,但是没有 SQL将初始数据插入到这些Asp.Net标识表中。

// Create role
var userManager = HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>();
var roleManager = HttpContext.Current.GetOwinContext().Get<ApplicationRoleManager>();
const string roleName = "CanEdit";

var role = roleManager.FindByName(roleName);
if (role == null)
{
    role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole(roleName);
    var roleresult = roleManager.Create(role);
}

var memberEmails = Properties.Settings.Default.CanEditMembers.Split(';');
foreach (var email in memberEmails)
{
    var user = userManager.FindByName(email.Trim());
    if (user != null)
    {
        var rolesForUser = userManager.GetRoles(user.Id);
        if (!rolesForUser.Contains(role.Name))
        {
            var result = userManager.AddToRole(user.Id, role.Name);
        }
    }
}

基本上我想将'CanEdit'插入到AspNetRoles(我猜)并将一些其他值(用户及其与角色的关联)插入到这些AspNetUser ....表中。我的部分控件已经使用属性[Authorize(Roles = "CanEdit")]进行了装饰。

0 个答案:

没有答案