2014-11-16 36 views
0

我在激活页面中有以下代码,用户通过电子邮件链接激活帐户。我得到了“newUser.IsApproved = true;”这一行错误的“对象引用未设置为对象的实例”错误。 我检查userId字符串,它得到用户Id字符串和字符串不empty.Membership.Getuser()总是得到空,任何人都可以帮助我?C#asp.net Membership.Getuser()总是为空

//request for signed user UserId 
    Guid activationCode = new Guid(Request.QueryString["ActivationCode"]); 
    string userId = ""; 

    string ConnectionString = ConfigurationManager.AppSettings["myConnectionString"]; 
    try 
    { 
     using (SqlConnection sqlConnection = new SqlConnection(ConnectionString)) 
     { 
      SqlCommand sqlCommand = new SqlCommand("SELECT user_id FROM ActivationCode WHERE activation_code LIKE '%" + activationCode + "%'", sqlConnection); 
      sqlConnection.Open(); 
      SqlDataReader userIdRdr; 
      userIdRdr = sqlCommand.ExecuteReader(); 
      while (userIdRdr.Read()) 
      { 
       userId = userIdRdr["user_id"].ToString(); 
      } 
      sqlConnection.Close(); 

      MembershipUser newUser = Membership.GetUser(userId); 
      //activate signed user 
      newUser.IsApproved = true; 
      Membership.UpdateUser(newUser); 
     } 
    } 
+0

您使用什么会员服务?你能为此显示配置吗? –

+0

我正在使用默认的。 – user3719173

+0

您确定会员资格配置正确吗?我的意思是其他网页正常工作? – Alireza

回答

0

明白了!

Guid guid = new Guid(userId); 
MembershipUser newUser = Membership.GetUser(guid); 
newUser.IsApproved = true; 
Membership.UpdateUser(newUser);