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

У меня есть несколько вопросов о том, когда и как viewstate шифруется в asp.net 3.5. Например, если у меня есть запись машинного ключа в моем web.config, например: decryptionKey = "AutoGenerate, IsolateApps" validation = "AES" decryption = "Auto" />

Зашифровано ли состояние просмотра на этом этапе? Или мне также нужно указать viewStateEncryptionMode в разделе страницы?

Кроме того, можно ли зашифровать cookie проверки подлинности форм, но не зашифровать одновременно состояние просмотра?

Спасибо за любую помощь.


person Community    schedule 04.12.2008    source источник


Ответы (1)


Элементы управления на странице могут запрашивать использование шифрования для ViewState, но даже этот запрос может быть отменен настройкой страницы.

Перечисление ViewStateEncryptionMode имеет три значения: Auto, Always и Never. Значение по умолчанию - Авто.

ViewStateEncryptionMode.Auto

В этом режиме ASP.NET будет шифровать ViewState для страницы, если какой-либо элемент управления на странице запрашивает его. Обратите внимание, что это означает, что зашифровано все ViewState, а не только ViewState для элемента управления, который его запрашивает. Большая часть затрат на производительность, связанных с шифрованием, приходится на накладные расходы. Таким образом, шифрование всего ViewState происходит быстрее, чем выполнение отдельных операций шифрования, если запрос выполняется более чем одним элементом управления.

ViewStateEncryptionMode.Never

Как и следовало ожидать, в этом режиме ASP.NET не будет шифровать ViewState, даже если приложение настроено на шифрование и элементы управления на странице запросили его. Если вы знаете, что никакие данные, содержащиеся на странице, не нуждаются в шифровании, тогда может быть безопасно установить режим «Никогда». Однако на данном этапе документация об элементе управления редко раскрывает, что сохраняется в ViewState, поэтому следует соблюдать осторожность, если есть вероятность раскрытия конфиденциальных данных.

ViewStateEncryptionMode.Always

В этом режиме ASP.NET не ждет, пока элемент управления на странице запросит шифрование. ViewState всегда зашифрован. При работе с конфиденциальными данными рекомендуется использовать шифрование.

Источник: http://msdn.microsoft.com/en-us/library/aa479501.aspx

person Dan Esparza    schedule 04.12.2008