#c# #asp.net-mvc #asp.net-mvc-3 #asp.net-membership
#c# #asp.net-mvc #asp.net-mvc-3 #asp.net-членство
Вопрос:
Я кодирую приложение, и я хотел бы предоставить администратору способ сбросить пароль. Самое близкое, к чему я подошел, это следующее:
public abstract string ResetPassword(string username, string answer);
Но для этого нужно, чтобы я знал ответ.
С помощью .NET MembershipProvider как я могу просто сбросить пароль на что-то другое? Единственный способ, который я могу придумать, чтобы сделать это, — это удалить пользователя и создать заново.
Ответ №1:
Вы реализуете свой пользовательский MembershipProvider? если это так, установите RequiresQuestionAndAnswer в значение false, и вам не нужно будет указывать ответ в ResetPassword.
Комментарии:
1. Я бы хотел, чтобы пользователям требовались RequiresQuestionAndAnswer, а администратору это не требовалось.
Ответ №2:
Комментарии:
1. Этот ответ, похоже, больше связан с ASP. Мое приложение — MVC, поэтому у меня нет всех пользовательских элементов управления ASP.
Ответ №3:
Довольно легко добавить функцию восстановления пароля в проект MVC. У меня есть сообщение в блоге на моем сайте, где я подробно описываю код, который вам нужно добавить к вашему контроллеру, модели и представлениям:
http://hectorcorrea.com/Blog/Password-Recovery-in-an-ASP.NET-MVC-Project
Ответ №4:
Я не смог сделать то, что вы хотите, используя только членство… Мне пришлось использовать System.DirectoryServices.
Предполагая, что вы можете получить запись каталога, попробуйте это:
public void SetPassword( DirectoryEntry AdEntry, string userPassword )
{
ADEntry.Invoke( "SetPassword", new object[] { userPassword } );
ADEntry.CommitChanges();
}
Если вам нужна дополнительная помощь, посмотрите здесь :