Membership.ValidateUser всегда возвращает false после обновления до VS 2010 / .NET 4.0 - PullRequest
6 голосов
/ 28 апреля 2010

Не уверен, относится ли это к VS 2010 или к обновленной платформе, но ... мы используем поставщика членства Oracle для аутентификации пользователей. До обновления все работало нормально, но теперь Membership.ValidateUser(user, password) возвращает false несмотря на действительные учетные данные. Исключений нет, поэтому трудно определить, в чем проблема. Инструмент администрирования веб-сайтов в VS 2010 по-прежнему способен управлять пользователями и ролями (более или менее), поэтому у меня нет оснований сомневаться в возможности подключения. В чем может быть проблема?

Ответы [ 3 ]

7 голосов
/ 29 апреля 2010

Ответ (согласно этой записи ) заключается в указании hashAlgorithmType="SHA1" в файле Web.config:

<membership defaultProvider="OracleMembershipProvider" hashAlgorithmType="SHA1"/>

Это не решило проблему для существующих пользователей, но недавно созданные пользователи могут войти в систему.

1 голос
/ 28 января 2012

Звучит как проблема, с которой я столкнулся ..

Добавление элемента machineKey в web.config вместо hashAlgorithmType = "SHA1" устранило проблему ... но я до сих пор не понимаю, почему мне нужно поместить это туда ... также не удалось найти какую-либо документацию ..

Вы можете проверить мой вопрос здесь .. Неверное имя пользователя или пароль. в интернет-приложении MVC 3

0 голосов
/ 28 апреля 2010

Возможно, вы испытываете машинный ключ несоответствия.

В web.config - неявный раздел machineKey использует автоматически сгенерированные ключи шифрования и проверки, которые снова привязаны к идентификатору приложения (AutoGenerate,IsolateApps).

Вы тестируете с другим экземпляром приложения или на другом компьютере?

Является ли поставщик членства Oracle 2.0 или 4.0?

И это всего лишь удар в темноте, может быть, это приведет вас к решению.

Из .NET Framework 4 Проблемы миграции

Типы членства

Некоторые типы (например, System.Web.Security.MembershipProvider), используемые в членстве ASP.NET, были перемещены из System.Web.dll в сборку System.Web.ApplicationServices.dll. Типы были перемещены, чтобы разрешить зависимости архитектурного уровня между типами в клиенте и в расширенных SKU .NET Framework.

Библиотеки классов, которые были обновлены с более ранних версий ASP.NET и используют перемещенные типы членства, могут не скомпилироваться при использовании в проекте ASP.NET 4. Если это так, добавьте ссылку в проекте библиотеки классов на System.Web.ApplicationServices.dll

...