2009-07-23 67 views
2

在ASP.NET中,ViewState通常可以防止在服務器上使用機器密鑰生成的簽名對客戶端進行篡改。但是,這種保護可以很容易地關閉:如何檢查EnableViewStateMac是否在運行時設置?

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

我正在寫一個ASP.NET控件可以店安全敏感信息(不是祕密...但它不能被篡改),取決於EnableViewStateMac是否爲true。

如何測試運行時是否打開或關閉?

回答

3

你應該只能夠引用

Page.EnableViewStateMac 

從你的代碼中。

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

+0

哇。這只是表明如果Intellisense中不存在某些東西,一些開發人員根本不認爲它存在。這是該屬性去的理想場所,但該屬性具有`[EditorBrowsable(EditorBrowsableState.Never)]`,因此Intellisense不會公開它。 無論如何,謝謝! – 2009-07-23 13:56:05

1

您可以檢查使用this.Page。從上面的link

EnableViewStateMac

注意不要在代碼中設置該屬性。使用.aspx文件中的@ Page指令設置EnableViewStateMac屬性。當頁面被請求時,動態生成的類設置屬性。


甲視圖狀態MAC是隱變量的加密版本,一個頁的視圖狀態持續時的頁面發送到瀏覽器。當此屬性設置爲true時,將檢查加密的視圖狀態以驗證它未在客戶端上被篡改。