2017-02-17 155 views
-1

我遇到了用户角色的问题。我想在注册期间给角色ID = 1。我正在使用Visual Studio注册站点。我有两个SQL表,带有我的角色的AspNetRoles和带有UserID和RoleId的AspNetRoles。但我不知道如何在注册过程中发挥作用。我的代码:注册用户角色

protected void CreateUser_Click(object sender, EventArgs e) 
{ 
    var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>(); 
    var signInManager = Context.GetOwinContext().Get<ApplicationSignInManager>(); 
    var user = new ApplicationUser() { UserName = Email.Text, Email = Email.Text }; 
    IdentityResult result = manager.Create(user, Password.Text); 
    if (result.Succeeded) 
    { 
     SqlConnection con = new SqlConnection(); 

     con.ConnectionString = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=aspnet-WebApplication1-20170217113247;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"; 


     UserID=.... 

     string query = "insert into AspNetUserRoles(UserId,RoleId) values ("+ UserID + "," + "1" + ")"; 

     SqlCommand cmd1 = new SqlCommand(query, con); 
     con.Open(); 
     cmd1.ExecuteNonQuery(); 
     con.Close(); 


     signInManager.SignIn(user, isPersistent: false, rememberBrowser: false); 
     IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response); 
    } 
    else 
    { 
     ErrorMessage.Text = result.Errors.FirstOrDefault(); 
    } 
} 

回答

0

您可以使用UserManager上的AddToRole()方法来执行此操作。我不认为它需要一个ID,但你需要角色的名字。

var roleresult = UserManager.AddToRole(user.Id, "Administrator");