2014-11-16 2 views
0

У меня есть следующий код на странице активации после активации учетной записи пользователя по электронной почте. Я получаю ошибку «ссылка на объект, не установленную на экземпляр объекта» для строки «newUser.IsApproved = true;». Я проверяю строку userId и получает строку идентификатора пользователя, а строка не пуста. Членство.Getuser() всегда получает значение null, кто-нибудь может мне помочь?C# asp.net Memberhip.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); 
Смежные вопросы