C# 创建管理员用户的问题

C# 创建管理员用户的问题,c#,asp.net-mvc,asp.net-identity,C#,Asp.net Mvc,Asp.net Identity,我在控制器中创建管理员用户时遇到问题。这里有什么问题 这是我的密码: public class ProductsController : Controller { private SwagExchangeDb db = new SwagExchangeDb(); protected override void Initialize(RequestContext requestContext) { var ac = new ApplicationDbCo

我在控制器中创建管理员用户时遇到问题。这里有什么问题

这是我的密码:

public class ProductsController : Controller
{
    private SwagExchangeDb db = new SwagExchangeDb();

    protected override void Initialize(RequestContext requestContext)
    {
        var ac  = new ApplicationDbContext();
        var userManager = new ApplicationUserManager(new UserStore<ApplicationUser>(ac));
        var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(ac));
        var user = new ApplicationUser { UserName = "hello@gmail.com", Email = "hello@gmail.com"};
        userManager.Create(user, "Hello1234!");
        roleManager.Create(new IdentityRole("admin"));
        userManager.AddToRole(user.Id, "admin");

    }
获取错误:


System.InvalidOperationException:“找不到用户Id”。

您试图通过您没有的Id来查找用户。创建用户后,您需要查询该用户。此外,您应该在使用完上下文后处理它:

protected override void Initialize(RequestContext requestContext)
{
    using (var ac  = new ApplicationDbContext())
    {
        var userManager = new ApplicationUserManager(new UserStore<ApplicationUser>(ac));
        var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(ac));
        var user = new ApplicationUser { UserName = "hello@gmail.com", Email = "hello@gmail.com"};
        userManager.Create(user, "Hello1234!");
        roleManager.Create(new IdentityRole("admin"));

        user = userManager.FindByNameAsync(user.UserName).Result;

        userManager.AddToRole(user.Id, "admin");
    }
}

哪一个代码给了你错误?它在userManager.AddToRoleuser.Id,adminYour更新是一个全新的问题。我建议您回滚编辑并提出一个新问题,因为在回答问题后更改该问题并不被认为是一个好行为,我将继续这样做。我的错,我是新来的。谢谢你的帮助。没问题,我们都是新来的。很高兴能帮上忙,他能不能把,userManager.AddToRoleuser.UserName,admin;没有.FindByUserName?@Jimenemex否,没有接受用户名称的重载,只有Id“ApplicationUserManger”不包含“FindByUserName”的定义,并且找不到接受类型为“ApplicationUserManger”的第一个参数的扩展方法“FindByUserName”?是否缺少using指令或程序集引用?@PJ.SQL Oops,我的错误,已修复!更新了我的原始帖子,包括在浏览器中导航到产品控制器时遇到的新错误。然而,用户现在被添加,这是伟大的!