2016-10-03 7 views
0

Я делаю сайт интрасети, в котором есть функциональность смены пароля.Изменение пароля пользователя в asp mvc

Когда пользователь вводит старый и новый пароль, он проверяет старый пароль с текущим паролем, и если оба они совпадают, он обновляет новый пароль в базе данных.

Когда я смотрю на базу данных, значение в столбце пароля изменяется, но если я попытаюсь войти в систему с новым паролем, тогда этого не произойдет, но он войдет в систему со старым паролем.

Теперь, если я остановлю приложение и снова создаю/запустил, он берет обновленный пароль.

Почему так происходит?

public JsonResult ChangePwd(string OldPwd, string NewPwd) 
    { 
     string username = User.Identity.Name.ToUpper(); 
     USER_DET temp = objUser.getUserByName(username); 
     if (temp.Password.ToString() == OldPwd.ToUpper()) 
     { 


      temp.Password = NewPwd.ToUpper(); 
      objUser.Update(temp); 
      var data2 = new[] { 
     new { Text="True", Value="1" }//Password Changed 

     }; 
      return Json(data2, JsonRequestBehavior.AllowGet); 
     } 
     else 
     { 
      var data2 = new[] { 
       new { Text="False", Value="1" }//Password didnt match... no changes 

       }; 
      return Json(data2, JsonRequestBehavior.AllowGet); 
     } 
    } 
+1

Может быть полезно, если вы разместите дополнительную информацию, включая код. – 0xDECAFBAD

+2

* Если я попытаюсь войти в систему с новым паролем, тогда этого не произойдет, но он войдет в систему со старым паролем. * Отлаживайте свой метод входа в систему, какие учетные данные требуют старого или обновленного. –

+1

@ Div ..... Спасибо, друг. Вы были правы, были некоторые проблемы в методе входа. – Sudhanshu

ответ

0

Как-то мне удалось заставить его работать. Я использовал функцию в классе поставщиков членства, которая не получала обновленные значения из базы данных. Поэтому вместо того, чтобы использовать это, я создал отдельную функцию, которая получает обновленные значения.

Смежные вопросы