在由标识创建的 AspNetUserRoles 表中分配角色

本文关键字:分配 角色 AspNetUserRoles 标识 创建 | 更新日期: 2023-09-27 17:55:48

我真的不明白如何使用这个身份的东西,下面我尽力了,我没有错误,但它什么也没做,我想知道为什么。我还检查了这个:

在新的VS 2013身份用户管理器中动态添加角色

将用户添加到角色 ASP.NET 标识

数据库中的表被修改了,我有:Id(自动增量,主键),RoleId,UserId - 默认情况下和没有主键。

 protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
    {
        // Default UserStore constructor uses the default connection string named: DefaultConnection
        var userStore = new UserStore<IdentityUser>();
        var roleStore = new RoleStore<IdentityRole>();
        var manager = new UserManager<IdentityUser>(userStore);  
        var RoleManager = new RoleManager<IdentityRole>(roleStore);
        var user = new IdentityUser { UserName = CreateUserWizard1.UserName };
        var role = new IdentityRole { Id = RadioButtonList1.SelectedValue};
        //Create new user and try to store in DB.
        if (CreateUserWizard1.Password.ToString() == CreateUserWizard1.ConfirmPassword.ToString())
        {
            try
            {
                IdentityResult result = manager.Create(user, CreateUserWizard1.Password.ToString());
                if (result.Succeeded)
                {   
                    var authenticationManager = HttpContext.Current.GetOwinContext().Authentication;
                    var userIdentity = manager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);
                    var selectedRole = RadioButtonList1.SelectedValue;
                    var currentUser = manager.FindByName(user.UserName);
                    var roleResult = manager.AddToRole(currentUser.Id, selectedRole);
                    authenticationManager.SignIn(new AuthenticationProperties(), userIdentity);
                    .
                    .

我不是在寻找使用视觉工作室制作的经典解决方案。我有SQL的用户配置文件并且工作正常,但是我的角色现在搞砸了。如果我手动放入该SQL表RoleId和UserId认为,它们工作正常。

在由标识创建的 AspNetUserRoles 表中分配角色

您是否尝试使用其他 UserStore 构造函数和另一个 RoleStore 构造函数。

它们都接受数据库上下文作为参数。

在您提供的两个链接中,都使用了带有参数的构造函数。