У меня есть сценарий, в котором, когда пользователь хочет сбросить пароль, системе будет отправляться временный случайный сгенерированный пароль пользователю по электронной почте. Я попытался сохранить временный пароль в новый столбец базы данных, но я не совсем уверен, работает ли этот подход. Некоторые люди рекомендуют использовать token
такие, как показано ниже:C# ASP.NET Identity
string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id);
Однако я действительно новичок в ASP.NET
и я не знаком с token
. Как сравнить временно созданный token
с token
в базе данных?
Другой метод, который я нашел, чтобы осуществить это, чтобы иметь Membership.GeneratePassword
функцию, которая генерирует случайную строку символов:
model.temppwd = Membership.GeneratePassword(10, 1);
Может кто-нибудь предоставить мне идеальный способ реализации этой функции с некоторым примером? Спасибо!
http://www.asp.net/identity/overview/features-api/account-confirmation-and-password-recovery-with-aspnet-identity –
На самом деле шаблон проекта ASP.NET Web Application содержит полная реализация –
@Joe вам ничего не нужно хранить. Токен * не * временный пароль и * вы * не должны хранить его в любом месте. Это заботится об идентификаторе ASP.NET точно так же, как и пароль пользователя/пароль. В шаблоне проекта ASP.NET MVC вы увидите, что AccountController имеет метод ResetPassword, который вызывает «var result = wait UserManager.ResetPasswordAsync (user.Id, model.Code, model.Password)», где 'model.Code' является токен, введенный пользователем либо напрямую, либо по ссылке –