Проблема шифрования состояния просмотра asp.net

Я пытаюсь включить шифрование состояния просмотра Всегда в качестве меры безопасности для моего веб-сайта ASP.NET 3.5, размещенного в IIS6. У нас отключено состояние просмотра, но в этой строке все еще присутствует "состояние управления". В тестовой среде я могу просто установить следующее в web.config, и я больше не могу base64 декодировать состояние просмотра в полупрозрачный текст:

Я даже добавил следующее (сгенерировано генератором машинных ключей ) в machine.config и все еще шифрую состояние просмотра на моем тестовом сервере:

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

Некоторая информация о моем не тестовом веб-сервере:

  • Веб-ферма / балансировка нагрузки (но сейчас для тестирования доступен только один сервер)
  • Состояние сеанса SQL (машинная клавиша в машине .config изначально был необходим для настройки)
  • machine.config: deployment retail = "true"

Кто-нибудь может предложить, где искать дополнительные настройки, которые могут помешать шифрованию состояния просмотра asp.net?

РЕДАКТИРОВАТЬ: Теперь на моем тестовом сервере iis я не могу отменить параметр viewStateEncryptionMode, поскольку он шифрует состояние представления, даже когда я установил его на «Никогда», и ни один из моих других веб-сайтов, похоже, не использует этот параметр. Где я могу посмотреть, где это свойство переопределяется? Есть ли какой-нибудь кеш, в котором хранится этот параметр, который необходимо очистить, кроме того, что будет сделано, когда я iisreset / stop www service / touch machine.config?

EDIT FINAL: После нескольких дней изучения файлов конфигурации я отказался и реализовал это через код. У меня уже был модуль безопасности, который прикреплялся к событиям страницы, поэтому в Page_Load я добавил: Page.RegisterRequiresViewStateEncryption ();

Мне бы очень хотелось узнать, что мешает немедленному использованию этого параметра в IIS6.Когда я запускаю cassini локально, если я устанавливаю viewStateEncryptionMode на «Always» через узел страниц, я сразу вижу, что он кодирует состояние просмотра и отображает дополнительное скрытое поле с id = «__ VIEWSTATEENCRYPTED». Когда я затем устанавливаю его на «Никогда», я сразу вижу, что шифрование отключается. Если я сделаю такое же точное изменение веб-сайта на моем веб-сайте, размещенном на IIS6, это не повлияет немедленно, но если я оставлю настройку там, она в конечном итоге вступит в силу. Я бы остановил / запустил службу www, сбросил iis, очистил временный кеш ASPNET, но я не знаю, что еще попробовать? Надеюсь, этот пост может на какое-то время измениться, и кто-то в будущем увидит то же поведение, что и я, и мы сможем в этом разобраться!

19
задан felickz 28 February 2016 в 01:52
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: