你好傢伙我想知道如何初始化一些以身份創建的表,我已經實現了一個具有屬於某個角色的權限的安全模塊,所以我必須添加一個Permission和RolePermission表,但是我找不到這裏怎麼itialilize他們的方式是我的代碼,我補充一點,允許創建許可類和RolePermission表中的身份ASP.NET如何初始化在Identity C#中創建的新表?
namespace SSMX.Mantra.WebApi.Infrastructure
{
public class ApplicationUser : IdentityUser
{
[Required]
[MaxLength(100)]
public string FirstName { get; set; }
[Required]
[MaxLength(100)]
public string LastName { get; set; }
[Required]
public byte Level { get; set; }
[Required]
public DateTime JoinDate { get; set; }
public virtual ICollection<Permission> Permissions { get; set; }
public virtual ICollection<RolePermission> RolePermissions { get; set; }
//Rest of code is removed for brevity
public async Task<ClaimsIdentity>
GenerateUserIdentityAsync(UserManager<ApplicationUser> manager, string
authenticationType)
{
var userIdentity = await manager.CreateIdentityAsync(this,
authenticationType);
// Add custom user claims here
return userIdentity;
}
}
public class Permission
{
public int Id { get; set; }
public string Code { get; set; }
public string Description { get; set; }
}
public class RolePermission
{
[Key]
public int IdRolePermission { get; set; }
public int IdPermission { get; set; }
public int IdRole { get; set; }
public virtual Permission Permission { get; set; }
public virtual IdentityRole Role { get; set; }
}
}
這是我的代碼初始化用戶和角色表中的種子法,所以我嘗試通過實現一個PermissionManager來執行與User和Role表相同的操作,但是我不能讚賞任何幫助,謝謝你們。
internal sealed class Configuration : DbMigrationsConfiguration<SSMX.Mantra.WebApi.Infrastructure.ApplicationDbContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
}
protected override void Seed(ApplicationDbContext context)
{
var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
var user = new ApplicationUser()
{
UserName = "SuperPowerUser",
Email = "[email protected]",
EmailConfirmed = true,
FirstName = "Taiseer",
LastName = "Joudeh",
Level = 1,
JoinDate = DateTime.Now.AddYears(-3)
};
manager.Create(user, "[email protected]!");
if (roleManager.Roles.Count() == 0)
{
roleManager.Create(new IdentityRole { Name = "SuperAdmin" });
roleManager.Create(new IdentityRole { Name = "Admin" });
roleManager.Create(new IdentityRole { Name = "User" });
}
var adminUser = manager.FindByName("SuperPowerUser");
manager.AddToRoles(adminUser.Id, new string[] { "SuperAdmin", "Admin" });
var permissions = new List<Permission>
{
new Permission()
{
Id = 1, Code = "101", Description = "Competencias.CentroDeportivo.Consulta"
},
new Permission()
{
Id = 1, Code = "102", Description = "Competencias.CentroDeportivo.Eliminar"
},
new Permission()
{
Id = 1, Code = "102", Description = "Competencias.CentroDeportivo.Crear"
}
};
}
}
如果您嘗試實施權限管理器,請張貼您已有的代碼, –