相关疑难解决方法(0)

如何使用int ID列更改ASP.net Identity 2.0的表名?

我已经使用ASP.net会员多年,我刚刚开始尝试ASP.net身份.他们刚刚发布了2.0版,它应该支持int主键.我已经定义了我的自定义标识类,以获得整数主键支持:

public class User : IdentityUser<int, UserLogin, UserRole, UserClaim>
{  
}

public class UserLogin : IdentityUserLogin<int>
{
}

public class Role : IdentityRole<int, UserRole>
{
    public string Description { get; set; }  // Custom description field on roles
}

public class UserRole : IdentityUserRole<int>
{
}

public class UserClaim : IdentityUserClaim<int>
{
}

public class MyDbContext : IdentityDbContext<User, Role, int, UserLogin, UserRole, UserClaim>
{
    public MyDbContext() : this("MyDB") { }

    public MyDbContext(string connStringName) : base(connStringName)
    {
        this.Configuration.LazyLoadingEnabled = …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-identity

44
推荐指数
2
解决办法
2万
查看次数

获取具有指定角色的用户

使用ASP.NET Core身份,我创建了一个新用户UserManager.CreateAsync()并将其分配给现有角色UserManager.AddToRoleAsync.这是有效的,因为用户和角色之间的实现存储在AspNetUserRoles数据库的表中.

但是当我使用UserManager(例如UserManager.FindByMail()方法)获取用户时,Role列表为空.我也尝试过IncludeEF 的功能:

var user = userManager.Users.Include(u => u.Roles).FirstOrDefault(u => u.Email == "test@test.de");
Run Code Online (Sandbox Code Playgroud)

这给了我n:m关联表的ID,因为我需要角色名称,所以它不是很有用.也不可能使用第二个查询加载它们,因为Roles身份用户的属性是只读的.我希望得到一个List<string>角色名称.找不到任何关于此的信息.

对我来说,唯一的解决方法似乎是向我的用户添加一个自定义属性,并用数据填充它们,我使用第二个查询获取数据.但那不是一个好的解决方案.不能相信ASP.NET Core Identity没有更好的方法来获取这些数据......

asp.net-identity asp.net-core-mvc asp.net-core asp.net-core-1.0

5
推荐指数
1
解决办法
7596
查看次数