public async Task <string> CreateUpdate(RoleVM model) { var createrole = new ATRole { Name = model.Name }; var createRole = await _roleManager.CreateAsync(createrole); // var roletouser = await _userManager.AddToRoleAsync(user, createrole.Name); var roleclaim = await _roleManager.AddClaimAsync(createrole, new Claim(ClaimTypes.Role, createrole.Name)); //var findid = await _roleManager.FindByNameAsync(model.Name); if (roleclaim.Succeeded) { var addpermission = new List <ATRoleToPermission>(); for (int i = 0; i < model.Permission.Count(); i++) { addpermission.Add(new ATRoleToPermission { RoleId = createrole.Id, PermissionId = model.Permission[i] }); } await _db.ATRoleToPermission.AddRangeAsync(addpermission); await _db.SaveChangesAsync(); } // var roletoclaim = await _userManager.AddClaimAsync(user, new Claim(ClaimTypes.Role, createrole.Name)); //var userToken = _userManager.CreateSecurityTokenAsync(user); return("success"); }
internal static unsafe void Init_(ATRole role, string name = null) { Role = role; if (name != null) { s_name = name; } }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); if (ModelState.IsValid) { try { var user = new ATuser { UserName = Input.Email, Email = Input.Email }; var result = await _userManager.CreateAsync(user, Input.Password); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); //adding the role for the admin user var createrole = new ATRole { Name = "superadmin" }; var createRole = await _roleManager.CreateAsync(createrole); var roletouser = await _userManager.AddToRoleAsync(user, createrole.Name); var roleclaim = await _roleManager.AddClaimAsync(createrole, new Claim(ClaimTypes.Role, createrole.Name)); var roletoclaim = await _userManager.AddClaimAsync(user, new Claim(ClaimTypes.Role, createrole.Name)); var userToken = _userManager.CreateSecurityTokenAsync(user); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code)); var callbackUrl = Url.Page( "/Account/ConfirmEmail", pageHandler: null, values: new { area = "Identity", userId = user.Id, code = code }, protocol: Request.Scheme); await _emailSender.SendEmailAsync(Input.Email, "Confirm your email", $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); if (_userManager.Options.SignIn.RequireConfirmedAccount) { return(RedirectToPage("RegisterConfirmation", new { email = Input.Email })); } else { await _signInManager.SignInAsync(user, isPersistent : false); return(LocalRedirect(returnUrl)); } } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } catch (Exception ex) { throw ex; } } // If we got this far, something failed, redisplay form return(Page()); }