Почему Membership.ValidateUser может возвращать false, когда пользователь одобрен и не заблокирован? - PullRequest
1 голос
/ 05 января 2011

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

У меня есть веб-сайт, который использует AspNetSqlMembershipProvider для проверки пользователей.Я хотел бы использовать ту же базу данных из консольного приложения.Согласно нескольким статьям в Интернете, я могу использовать класс System.Web.Security.Membership извне ASP.NET, скопировав соответствующие разделы из web.config в app.config.Это то, что я сделал.

Мое консольное приложение может получить пользователя с запрошенным именем, и я могу подтвердить, что пользователь утвержден и не заблокирован, но ValidateUser возвращает false для правильной пары имени пользователя и пароля.

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

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

Должен ли я продолжить этот подход или просто получить доступ к базе данных напрямую и сам хешировать пароль?

Ответы [ 2 ]

0 голосов
/ 07 января 2011

Оказывается, что первоначальный автор кода сайта - кто не был мной - преобразовал введенный пароль в верхний регистр перед его использованием.Поскольку я этого не знал, а мое консольное приложение этого не делало, ValidateUser правильно сообщал, что пароли не совпадают.

0 голосов
/ 05 января 2011

Посмотрите эту статью:

http://www.theproblemsolver.nl/usingthemembershipproviderinwinforms.htm

Добавление параметров конфигурации членства в вашем app.config может помочь.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...