Автоматическая генерация ключей машины в ASP.NET - PullRequest
5 голосов
/ 21 июля 2011

По умолчанию автоматическая настройка ключа машины выполняется для каждого приложения (AutoGenerate, IsolateApps). MSDN утверждает, что ключ дешифрования и валидации основан на идентификаторе веб-приложения. Я размещаю два сайта ASP.NET MVC 2 на своем сервере IIS 7, но обнаружил, что ключи машины совпадают. Я проверил это с помощью отражения, чтобы увидеть свойства ValidationKeyInternal и DecryptionKeyInternal. Я также проверил его, создав на одном сайте cookie-файл с маркером защиты от подделки, а затем передал его другому, и файл cookie можно прочитать.

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

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

Я хотел бы знать, есть ли ссылка на фактическую логику того, как машинный ключ генерируется в настройках AutoGenerate, IsolateApps. В Интернете много статей, в которых говорится об установке одного и того же ключа машины в сценарии веб-фермы. Но я столкнулся с проблемой на противоположной стороне. Автоматическое создание ключей для каждого веб-приложения не работает должным образом. У кого-нибудь была такая же проблема?

1 Ответ

0 голосов
/ 01 сентября 2011

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

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