将asp.net成员身份生成的用户ID插入自定义表(vb)

将asp.net成员身份生成的用户ID插入自定义表(vb),asp.net,sql-server,vb.net,asp.net-membership,Asp.net,Sql Server,Vb.net,Asp.net Membership,我花了几个小时试图找到这个问题的答案,尽管网上到处都有教程,但没有一个适合我(或者我太不懂他们在告诉我什么…) 无论如何,我正在asp.net中使用成员身份创建用户。我要做的是将生成的UserId添加到我创建的自定义表中的一列中,以将自定义表中的内容与在aspnet_Users中创建的用户链接起来 以下是注册提交按钮的代码: Private Sub submit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles

我花了几个小时试图找到这个问题的答案,尽管网上到处都有教程,但没有一个适合我(或者我太不懂他们在告诉我什么…)

无论如何,我正在asp.net中使用成员身份创建用户。我要做的是将生成的UserId添加到我创建的自定义表中的一列中,以将自定义表中的内容与在aspnet_Users中创建的用户链接起来

以下是注册提交按钮的代码:

Private Sub submit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles submit.Click
    Dim connectionString As String = WebConfigurationManager.ConnectionStrings("edinsec").ConnectionString
    Dim createStatus As MembershipCreateStatus
    Membership.CreateUser(fname.Text, password.Text, email.Text, sq.Text, sa.Text, False, createStatus)

    ''#Something has to happen here!

    Dim insertSQL As String

    insertSQL = "INSERT INTO clients (UserId)"
    insertSQL &= "VALUES (@userId)"
    Using con As New SqlConnection(connectionString)
  Dim cmd As New SqlCommand(insertSQL, con)
  cmd.Parameters.AddWithValue("@firstname", firstname.Text)


  Try
      Try
    con.Open()
      Catch ex As SqlException
    MsgBox("Connection Problem - Please Retry Later", 65584, "Connection Error")
      End Try
      cmd.ExecuteNonQuery()
      MsgBox("Thank you for joining us - we will be in touch shortly.", 65600, "Join Up")
      Response.Redirect("Default.aspx")
  Catch Err As SqlException
      MsgBox("Error inserting record - please retry later.", 65584, "Insertion Error")
  End Try
  con.Close()
    End Using
End Sub
如您所见,我试图获取成员身份生成的userid,并将其插入到clients表中。我尝试了很多方法来获取用户ID,但都没有成功

会员资格是用来创建用户的,这只是我以后一直坚持的部分


任何帮助都将不胜感激:)

Membership.CreateUser返回MembershipUser对象。您可以从返回的对象获取用户ID

MembershipUser user = Membership.CreateUser(...);
Guid userId = (Guid)user.ProviderUserKey;

Membership.CreateUser返回MembershipUser对象。您可以从返回的对象获取用户ID

MembershipUser user = Membership.CreateUser(...);
Guid userId = (Guid)user.ProviderUserKey;

我最终使用以下代码管理它:

Dim userid As Guid = New Guid(Membership.GetUser(username.Text).ProviderUserKey.ToString())
…其中username.Text是用户名表单输入的内容,用户在其中选择其用户名

相关参数行如下所示:

cmd.Parameters.Add("@UserId", g)

我得到一个警告,说我正在使用的方法被弃用,但它至少可以工作

我最终使用以下代码管理它:

Dim userid As Guid = New Guid(Membership.GetUser(username.Text).ProviderUserKey.ToString())
…其中username.Text是用户名表单输入的内容,用户在其中选择其用户名

相关参数行如下所示:

cmd.Parameters.Add("@UserId", g)

我得到一个警告,说我正在使用的方法被弃用,但它至少可以工作

我在代码中遇到了各种各样的错误(“MembershipUser是一种类型,不能用作表达式”等等)。你发布的是VB吗?我在代码中遇到了各种各样的错误(“MembershipUser是一种类型,不能用作表达式”等等)。您发布的是VB吗?警告与使用.Add而不是.AddWithValue有关。更改后,没有任何警告,并且仍然可以正常工作。警告与使用.Add而不是.AddWithValue有关。改变后,没有任何警告,它仍然可以正常工作。