2017-02-17 6 views
-1

사용자 역할에 문제가 있습니다. 나는 역할 ID = 1을 등록하는 동안주고 싶다. Visual Studio 등록 사이트를 사용하고 있습니다. 두 개의 SQL 테이블, AspNetRoles과 UserID 및 RoleId가있는 AspNetRoles 및 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");