【问题标题】:Assign a user to AspNetUserRole in Console Line Application C#在控制台行应用程序 C# 中将用户分配给 AspNetUserRole
【发布时间】:2016-12-28 19:03:34
【问题描述】:

我有一个程序,我在其中读取一个包含电子邮件地址和用户数据的 CSV 文件,并将其带入 C# 控制台行应用程序,并将每一个写入 AspNetUser 表(假设它通过验证)。

我可以通过以下代码写入新用户:-

AspNetUser user = new AspNetUser();
user.Id = Guid.NewGuid().ToString();
user.UserName = username;
// More Code
db.AspNetUsers.Add(user);
db.SaveChanges();

我如何从这里将它们分配给一个角色,以便在 AspNetUsersRole 表中添加一条记录?无法通过 LINQ 访问该表?我似乎无权访问控制台行应用程序中的 UserManager 或 ApplicationUser?

提前致谢!

【问题讨论】:

  • 如果您使用 Identity,您应该使用 UserManagerRoleManager 类来管理您的用户/角色。
  • 我如何从控制台应用程序访问这些? Intellisense 只是让我创建一个同名的新类?这是我需要添加的参考吗?

标签: c# linq asp.net-identity console-application asp.net-roles


【解决方案1】:

如果您使用 Identity,您应该使用 UserManagerRoleManager 类来管理您的用户/角色:

var user = new AspNetUser
{ 
    Id = Guid.NewGuid().ToString(),
    UserName = username
};

var userManager = new UserManager<AspNetUser>();
userManager.Create(user, "password");
userManager.AddToRole(user.Id, "RoleName");

但如果你真的想坚持你的上下文,那么你可以使用用户的导航属性:

var user = new AspNetUser
{ 
    Id = Guid.NewGuid().ToString(),
    UserName = username
};

db.AspNetUsers.Add(user);
var role = db.AspNetRoles.Single(r => r.Name = "RoleName");
user.Roles.Add(role);
db.SaveChanges();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-06
    • 2011-01-21
    • 2011-06-24
    • 1970-01-01
    • 2023-03-03
    • 2018-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多