Подтвердить что ты не робот

Членство в ASP.NET - вход в систему работает локально, не работает Azure

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

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

4b9b3361

Ответ 1

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

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

Элемент конфигурации, который необходимо изменить, - <machinekey> под < system.web > :

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

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