具有自定义角色的asp.net身份

时间:2015-05-20 13:55:03

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

我对Identity框架和自定义角色有疑问。我的自定义角色包含一组活动权限。

我的自定义角色看起来像

public class MyRole : IdentityRole
{
    public List<MyPermission> Permissions { get; set; }
}

public class MyPermission
{
    public int Id { get; set; }
    public int Value { get; set; }
}

和RoleManager一样

public RoleManager<MyRole> MyRoleManager;

我可以创建新角色,但我有更新角色权限的问题。 我像

一样更新
myRole.Permissions.Clear();
myRole.Permissions.Add(new MyPermission() { ... });
MyRoleManager.Update(myRole);

已添加新权限,但旧权限仍在数据库中。我怎样才能删除那些旧的。

被修改: 我注意到了更多的问题。当我从RoleManager使用FindById时,没有来自数据库的权限加载。

谢谢。

1 个答案:

答案 0 :(得分:0)

假设您正在使用Code First,您需要将DbSet添加到您的Context:

DbSet<MyRole> Roles {get;set;}
DbSet<MyPermission> Permissions {get;set;}

您还需要确保将您的收藏集标记为virtual ICollection

public class MyRole : IdentityRole
{
    public virtual ICollection<MyPermission> Permissions { get; set; }
}