通过Membership.CreateUser创建大量Membership的有效方法?

| 我只是创建了成员资格管理程序,该程序可以一个一个地创建用户,它也可以从文本文件导入数据。当我从文本文件导入数据时,它可以在超时之前创建大约30个用户,而在我调试之后,每个CreateUser调用大约需要1秒钟的时间。 我想知道,当我创建大量的aspnet用户时,如何提高性能。     
已邀请:
解决方案1: 从用户表中获取所有数据到表“用户”中的数据集ds中 将成员表中的所有数据获取到同一数据集ds中的表“成员”中 在字段userid的两个表之间创建关系 在表用户的每一行上运行循环 对于每个用户,请使用UserName和Password作为参数调用Membership.CreateUser 获取当前用户DataRow.GetChildRows的所有子行 对于返回的每个子行,以用户名和角色名作为参数调用Roles.AddUserToRole(仅在角色处于活动状态时添加) 从这里拍摄。 解决方案2: 下载Peter Keller的会员编辑器 使用以下列创建SpreadSheet:用户名,密码和电子邮件。 将此excel文件作为表导入到此数据库:yourUsers $ 创建一个Winforms应用程序,添加一个按钮以形成表单并将此代码粘贴到其click事件中:
protected void batchInsertButton_Click(object sender, EventArgs e)
{
string strConn = ConfigurationManager.ConnectionStrings[\"1ConnectionString\"].ConnectionString;
string strSQL = \"SELECT * FROM yourUsers$\";

SqlConnection myConnection = new SqlConnection(strConn); 

myConnection.Open();

SqlCommand myCommand = new SqlCommand(strSQL,myConnection);

SqlDataReader myReader; 


myReader = myCommand.ExecuteReader(); 
    while (myReader.Read()) {

        ObjectDataSourceMembershipUser.InsertParameters[\"UserName\"].DefaultValue = myReader[\"UserName\"].ToString();//TextBoxUserName.Text; ;
        ObjectDataSourceMembershipUser.InsertParameters[\"password\"].DefaultValue = myReader[\"password\"].ToString();//TextBoxPassword.Text;
        ObjectDataSourceMembershipUser.InsertParameters[\"passwordQuestion\"].DefaultValue =\"your qestion\";//TextBoxPasswordQuestion.Text;
        ObjectDataSourceMembershipUser.InsertParameters[\"passwordAnswer\"].DefaultValue = \"your answer\";//TextBoxPasswordAnswer.Text;
        ObjectDataSourceMembershipUser.InsertParameters[\"email\"].DefaultValue = myReader[\"email\"].ToString();//TextBoxEmail.Text;
        ObjectDataSourceMembershipUser.InsertParameters[\"isApproved\"].DefaultValue = \"true\";//CheckboxApproval.Checked == true ? \"true\" : \"false\";

ObjectDataSourceMembershipUser.Insert();


//hard code this user role
Roles.AddUserToRole(myReader[\"UserName\"].ToString(), \"NormalUser\"); 

        } 
myConnection.Close();

GridViewMemberUser.DataBind();
GridViewRole.DataBind();
}  
从这里拍摄。     

要回复问题请先登录注册