Add User to Role ASP.NET Identity

后端 未结 7 681
梦毁少年i
梦毁少年i 2020-12-07 16:47

I know the new Membership includes a \"Simple Role Provider.\"

I can\'t find any help related to creating a user and assigning a role when the user is created. I\'v

相关标签:
7条回答
  • 2020-12-07 17:30

    Below is an alternative implementation of a 'create user' controller method using Claims based roles.

    The created claims then work with the Authorize attribute e.g. [Authorize(Roles = "Admin, User.*, User.Create")]

        // POST api/User/Create
        [Route("Create")]
        public async Task<IHttpActionResult> Create([FromBody]CreateUserModel model)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }
    
            // Generate long password for the user
            var password = System.Web.Security.Membership.GeneratePassword(25, 5);
    
            // Create the user
            var user = new ApiUser() { UserName = model.UserName };
            var result = await UserManager.CreateAsync(user, password);
            if (!result.Succeeded)
            {
                return GetErrorResult(result);
            }
    
            // Add roles (permissions) for the user
            foreach (var perm in model.Permissions)
            {
                await UserManager.AddClaimAsync(user.Id, new Claim(ClaimTypes.Role, perm));
            }
    
            return Ok<object>(new { UserName = user.UserName, Password = password });
        }
    
    0 讨论(0)
提交回复
热议问题