Наконец, я нашел основную причину проблемы и, очевидно, решение.
Эта ситуация возникла из-за несоответствия hashAlogorithmType, используемого в приложении.По умолчанию hashAlgorithmType в ASP.NET 4 - «HMACSHA256».Первоначально, когда я добавил учетную запись администратора в базу данных с помощью инструмента конфигурации ASP.Net, он хэшировал пароль с помощью алгоритма хеширования "SHA1".Когда я попытался сбросить пароль с помощью API членства ASP.NET, он был успешно сброшен.Но используя алгоритм хеширования по умолчанию "HMACSHA256".
Это меня бесило, когда я пытался войти в систему, используя новый пароль, сгенерированный API.
Наконец, я добавил строку кода ниже и установилточка останова перед вызовом метода сброса API.
var hashAlgorithmType = Membership.HashAlgorithmType;
мой полный код выглядит следующим образом:
MembershipUser user = Membership.GetUser(userName);
if (user == null)
throw new DataNotFoundException("Invalid User.");
string newPassword = string.Empty();
var isUnlock = user.UnlockUser();
var hashAlgorithmType = Membership.HashAlgorithmType;
if(isUnlock) newPassword=user.ResetPassword();
return newPassword;
Это подсказало мне алгоритм хэширования по умолчанию, используемый API.
затем я добавил атрибут для тега в web.config, как показано ниже
<membership hashAlgorithmType="SHA1">
, и снова попытался сбросить пароль и войти в систему с использованием сгенерированного пароля.
Вот это да!это работает.