Членство в ASP.NET - вход в систему работает локально, сбой в Azure - PullRequest
18 голосов
/ 07 декабря 2011

Я работаю над сайтом MVC3, и у меня возникла загадочная проблема с членством в ASP.NET.Я использую System.Web.Providers 1.0.1, подключенный к базе данных SQL Azure.

Как и сейчас, то же имя пользователя / пароль, которое входит в систему при работе в эмуляторе вычислений, не работает при работе в Azureсобственно.Я вижу, что он использует правильную базу данных, поскольку счетчик Failed Password Attempts в базе данных участников обновляется.

1 Ответ

28 голосов
/ 07 декабря 2011

Я отследил это, благодаря некоторой информации в этой статье Дэвида Хёрстера .Проблема заключается в том, что алгоритм хеширования паролей по умолчанию в Azure отличается от настроек по умолчанию .NET 4.0.В Azure для него установлено значение SHA1, а HMACSHA256 - это новая стандартная настройка для 4.0.

Это можно исправить, указав тип хеша явно в web.config.Если вы решите использовать такой метод, как HMACSHA256, убедитесь, что вы также указали ключ компьютера - в противном случае вы столкнетесь с аналогичными проблемами, поскольку автоматически созданный ключ компьютера будет отличаться от сервера к серверу.изменение под :

<machineKey decryptionKey="PUT_DECRYPTION_KEY_HERE"
            validationKey="PUT_VALIDATION_KEY_HERE"
            decryption="AES"
            validation="HMACSHA256" />

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

...