Любым способом с помощью .Сетевое членство в C #, чтобы я мог сбросить пароль

#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();
        }
  

Если вам нужна дополнительная помощь, посмотрите здесь :

Как это сделать: (почти) Все в Active Directory через C#