ASP.Net Пользователь забыл ответ на вопрос с паролем - PullRequest
3 голосов
/ 06 апреля 2011

Как я могу сбросить пароль для пользователя, который забыл и пароль, и ответ на вопрос сброса пароля? Я использую членство в ASP.Net.

Ответы [ 2 ]

5 голосов
/ 07 апреля 2011

Если ваш членский провайдер ("AspNetSqlMembershipProvider") в Web.config имеет requiresQuestionAndAnswer="true", создайте второго провайдера (такого как "AspNetSqlMembershipProviderAdministrativeReset") со всеми теми же настройками, кроме requiresQuestionAndAnswer="false".

Затем вы можете создать действие, которое явно использует второго провайдера, чтобы администратор мог сбросить пароль, не требуя правильного ответа на секретный вопрос, как в следующем фрагменте:

var provider = Membership.Providers["AspNetSqlMembershipProviderAdministrativeReset"] as MembershipProvider;
var newPassword = provider.ResetPassword(userName, null /* answer */);
1 голос
/ 27 сентября 2011

На странице администрирования вашего сайта вы можете просто сбросить пароль, сначала завладев пользователем:

// Assume user name is 'theuser'.  Obviously you would get this beforehand
MembershipUser user = Membership.GetUser("theuser");
string newPassword = user.ResetPassword();

Теперь у вас будет автоматически сгенерированный пароль в 'newPassword'. Вы можете отправить это по электронной почте пользователю.

Есть и другие способы сделать это. База данных о членстве довольно широко открыта, так что вы могли бы придумать системы ввода, чтобы самостоятельно получить желаемый новый пароль и поместить туда хеш-значение. Пожалуйста, прокомментируйте, если вам нужно больше деталей. Это не должно быть сложно.

...