为用户角色注册

时间:2017-02-17 17:47:23

标签: c# asp.net registration user-roles

我遇到了用户角色的问题。我想在注册时给出角色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();
    }
}

1 个答案:

答案 0 :(得分:0)

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

var roleresult = UserManager.AddToRole(user.Id, "Administrator");
相关问题