下面是示例代码:
protected void CreateUser_Click(object sender, EventArgs e) { MembershipCreateStatus status; MembershipUser user = Membership.CreateUser(UsernameTextBox.Text, PasswordTextBox.Text, EmailTextBox.Text, QuestionTextBox.Text, AnswerTextBox.Text, true, out status);
if (user != null && status == MembershipCreateStatus.Success) { // 创建用户数据库 string userId = user.ProviderUserKey.ToString(); string databaseName = String.Format("UserDb_{0}", userId); CreateDatabase(databaseName);
// 存储用户 ID 到 User 表格中
string connectionString = ConfigurationManager.ConnectionStrings["MembershipConnection"].ConnectionString;
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand("INSERT INTO Users (Username, UserId) VALUES (@Username, @UserId)", connection);
command.Parameters.AddWithValue("@Username", user.UserName);
command.Parameters.AddWithValue("@UserId", userId);
connection.Open();
command.ExecuteNonQuery();
}
// 完成用户注册
FormsAuthentication.SetAuthCookie(user.UserName, false);
Response.Redirect("~/User/Profile.aspx");
} }
private void CreateDatabase(string databaseName) { string connectionString = ConfigurationManager.ConnectionStrings["MembershipConnection"].ConnectionString.Replace("master", databaseName); using (SqlConnection connection = new SqlConnection(connectionString)) { string script = @"CREATE DATABASE " + databaseName + @" CONTAINMENT = NONE ON PRIMARY ( NAME = N'" + databaseName + @"', FILENAME = N'" + Server.MapPath("~/App_Data/") + databaseName + ".mdf" + @"', SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N'" + databaseName + @"_log',