Page.RegisterRequiresViewStateEncryption 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
向頁面註冊控制項,成為需要檢視狀態加密的控制項。
public:
void RegisterRequiresViewStateEncryption();
public void RegisterRequiresViewStateEncryption ();
member this.RegisterRequiresViewStateEncryption : unit -> unit
Public Sub RegisterRequiresViewStateEncryption ()
例外狀況
在頁面生命週期的 PreRender
階段期間或之前,必須呼叫 RegisterRequiresViewStateEncryption() 方法。
範例
下列程式碼範例示範如何設定 Page 物件的檢視狀態加密模式,並透過 RegisterRequiresViewStateEncryption 要求加密檢視狀態。 在此範例中,從資料庫擷取客戶資訊時,檢視狀態將會加密。
<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Page_Load(Object sender, EventArgs e)
{
if (IsPostBack)
{
if (yesRetrieve.Checked)
{
Page.RegisterRequiresViewStateEncryption();
System.Data.SqlClient.SqlConnection conn =
new System.Data.SqlClient.SqlConnection
("server=localhost;database=Northwind;Integrated Security=SSPI");
System.Data.SqlClient.SqlCommand command =
conn.CreateCommand();
command.CommandText = "Select [CustomerID] From [Customers]";
conn.Open();
System.Data.SqlClient.SqlDataReader reader =
command.ExecuteReader();
customerid.Text = reader["CustomerID"].ToString();
reader.Close();
conn.Close();
}
else
{
customerid.Text = "Not retrieved";
}
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Customer Information</title>
</head>
<body>
<form id="form1" runat="server">
<div>
Customer identifier:
<asp:Label ID="customerid" runat="server" Text="Not available" />
<br />
Retrieve customer info:
<asp:RadioButton ID="yesRetrieve" Text="yes" runat="server" GroupName="group1" />
<asp:RadioButton ID="noRetrieve" Text="no" runat="server" GroupName="group1" />
<br />
<asp:Button ID="Button1" runat="server" Text="Submit" />
</div>
</form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
If IsPostBack Then
If (yesRetrieve.Checked) Then
Page.RegisterRequiresViewStateEncryption()
Dim conn As System.Data.SqlClient.SqlConnection = _
New System.Data.SqlClient.SqlConnection _
("server=localhost;database=Northwind;Integrated Security=SSPI")
Dim command As System.Data.SqlClient.SqlCommand = _
conn.CreateCommand()
command.CommandText = "Select [CustomerID] From [Customers]"
conn.Open()
Dim reader As System.Data.SqlClient.SqlDataReader = _
command.ExecuteReader()
customerid.Text = reader("CustomerID").ToString()
reader.Close()
conn.Close()
End If
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Customer Information</title>
</head>
<body>
<form id="form1" runat="server">
<div>
Customer identifier:
<asp:Label ID="customerid" runat="server" Text="Not available" />
<br />
Retrieve customer info:
<asp:RadioButton ID="yesRetrieve" Text="yes" runat="server" GroupName="group1" />
<asp:RadioButton ID="noRetrieve" Text="no" runat="server" GroupName="group1" />
<br />
<asp:Button ID="Button1" runat="server" Text="Submit" />
</div>
</form>
</body>
</html>
備註
如果您要開發處理潛在敏感性資訊的自訂控制項,請呼叫 RegisterRequiresViewStateEncryption 方法來向頁面註冊控制項,並確保控制項的檢視狀態已加密。
如果 設定為 Auto 或 Always , ViewStateEncryptionMode 則會加密整個頁面狀態。