Использование поставщика членства для частного сайта - PullRequest
0 голосов
/ 20 июня 2011

Я не могу быть первым, у кого возникла эта проблема, я, должно быть, упускаю простое решение. Я унаследовал непубличный сайт ASP.NET, защищенный с помощью проверки подлинности форм с помощью SqlMembershipProvider для защиты сайта. Все отлично работает с пользователями, которые разработчик вручную добавил в базу данных.

Мне нужно добавить административную страницу, чтобы позволить привилегированным пользователям добавлять и изменять учетные записи пользователей. Провайдер членства позволяет очень легко создать его, но проблема, с которой я столкнулся с SqlMembershipProvider, сейчас - это вопрос / ответ. Администратор должен иметь возможность сбросить пароли других пользователей на временный пароль и создать новую учетную запись пользователя (также с временным паролем). Для сброса пароля требуется либо ответ на вопрос пользователя, либо его текущий пароль.

Конечно, я мог бы просто добавить что-то вроде «вопрос» и «ответ» для всех учетных записей, и это сработало бы, но я обеспокоен рисками безопасности, связанными с этим. Возможно, я слишком параноидален. Создание настраиваемого поставщика членства, помимо большой работы, не решает эту проблему, поскольку к базе поставщиков членства предъявляются те же требования.

Спасибо.

1 Ответ

2 голосов
/ 20 июня 2011

Для сброса пароля требуется либо ответ на вопрос пользователя, либо его текущий пароль

Если вы в настоящее время не используете вопрос / ответы , вы можете переопределить это в web.config

requiresQuestionAndAnswer="false"

После этого вы можете сделать:

        string requesteduserGUIDstring = "some GUID";
        Guid UserID = new Guid(requesteduseridstring.ToUpper());
        MembershipUser mu = Membership.GetUser(UserID);
        mu.ChangePassword(mu.ResetPassword(), tbNewPassword.Text);

Если вы используете вопрос / ответы, вы можете добавить второго провайдера в ваш web.config и установить только для этого провайдера тот же переопределенный код и использовать ТОЛЬКО этого провайдера для функции сброса пароля

...