AddToRole()方法不会在ASP中生成数据库条目.净的身份

本文关键字:数据库 身份 方法 ASP AddToRole | 更新日期: 2023-09-27 18:10:00

我正在使用ASP。. NET身份在我的ASP。我的问题发生在添加用户到角色。没有任何例外,但是作为um.AddToRole()的结果,没有db条目被添加到AspNetUserRoles表中。我的动作方法是这样的:

    public ActionResult GrantAdmin(string id)
    {
        ApplicationUser user = um.FindById(id);
        if (!rm.RoleExists("admin")) 
        {
            rm.Create(new IdentityRole("admin"));
        }
        um.AddToRole(user.Id, "admin");
        return View((object)user.UserName);
    }

um是UserManager类的对象:

private UserManager<ApplicationUser> um = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));

这种应用程序行为的原因是什么?任何想法?

= = = = = =进行编辑这是我的DbContext:

public ApplicationDbContext()
        : base("DefaultConnection")
    {
    }

和Web.config中的默认连接:

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)'v11.0;AttachDbFilename=|DataDirectory|'aspnet-RecommendationPlatform-20140404055015.mdf;Initial Catalog=aspnet-RecommendationPlatform-20140404055015;Integrated Security=True" providerName="System.Data.SqlClient" />

AddToRole()方法不会在ASP中生成数据库条目.净的身份

重要的是要记住,许多操作返回一个存储最终错误的结果对象。没有例外。因此,应该在每次操作后检查结果对象是否成功。这不仅适用于角色,而且适用于大多数将数据保存到数据库的方法。即使它可以工作,你仍然应该测试是否成功,如果结果不成功,最终抛出一个异常。

根据您案例中的评论,问题是无效的用户名。