2009-07-23 2 views
2

В ASP.NET ViewState обычно защищен от несанкционированного доступа к клиенту с сигнатурой, сгенерированной машинной секретностью на сервере. Но эта защита может быть легко отключена с помощью:Как проверить, установлен ли EnableViewStateMac во время выполнения?

<%@ Page ... EnableViewStateMac="false" %> 

Я пишу управление ASP.NET, может магазин секретной информации (не секрет ... но он не должен быть изменен), в зависимости от того, является ли EnableViewStateMac истинным.

Как я могу проверить, включено ли оно во время выполнения?

ответ

3

Вы просто должны быть в состоянии ссылаться

Page.EnableViewStateMac 

в коде.

http://msdn.microsoft.com/en-us/library/system.web.ui.page.enableviewstatemac.aspx

+0

Wow. Это просто показывает, что, если что-то не существует в Intellisense, некоторые разработчики не считают, что он существует вообще. Это идеальное место для этого свойства, и все же это свойство имеет '[EditorBrowsable (EditorBrowsableState.Never)]' установленный на нем, чтобы Intellisense не раскрывал его. В любом случае, спасибо! –

1

Вы можете проверить с помощью this.Page. EnableViewStateMac

Примечание из приведенного выше link

Не устанавливайте это свойство в коде. Задайте атрибут EnableViewStateMac с помощью директивы @ page в файле .aspx. Когда запрашивается страница, динамически созданный класс устанавливает свойство.


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

Смежные вопросы