2012-03-21 3 views
0

Членство.ValidateUser (имя пользователя, пароль) возвращает bool, указывающий, что логин был успешным или не выполнен.Asp.net Membership.ValidateUser() Может ли быть более конкретным?

Как узнать более конкретно, если это был пароль или имя пользователя, которое было недействительным?

Благодаря

+3

Выявление этой информации для пользователя - довольно большое отверстие безопасности. – asawyer

ответ

0

Вы могли бы довольно легко выполнить MemberhipProvider.ValidateUser(), а затем, если они были недопустимы, выполните поиск пользователя по имени с помощью метода MembershipProvider.GetUser(). Если вы нашли кого-то, вы могли бы сказать им, что их пароль был неправильным, поскольку пользователь существует.

Это не означает, что я бы не хотел, чтобы злоумышленник стал простым способом установления правильных имен пользователей в моей системе. YMMV.

+0

Спасибо. Я решил против него, так как я не хочу вводить дыры в безопасности. Поскольку в этой теме я также хочу вызвать user.GetPassword() в методе действий VerifyNewUser(), чтобы активировать учетную запись и автоматически регистрировать пользователя. Я получаю исключение: «Этот поставщик членства не настроен для поддержки поиска пароля». Я нашел, где я могу включить это, но делает ли это также введение другого отверстия безопасности? EDIT: хотя я не вижу никаких других параметров, так как передача пароля в HTTP-запросах определенно не лучше. – parliament

+0

Это действительно лучший способ получить пароль внутри моего метода проверки VerifyNewUser(). Я бы предпочел сохранить хеш-солевый подход, но мне нужно «GetPassword()» в этом методе. Я не хочу компрометировать всю безопасность системы для этого одного вызова = \ Возможно, отправить фактическое значение хэша через http? Пожалуйста, порекомендуйте. – parliament

+0

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

0

Как отметил выше, показывая, что информация для пользователя является довольно большая дыра в безопасности. Если вас все еще не устраивает, вам нужно написать свой собственный поставщик членства, пожалуйста, обратитесь к http://www.codeproject.com/Articles/13032/Custom-MembershipProvider-and-RoleProvider-Impleme за дополнительной информацией.

Смежные вопросы