HttpCapabilitiesBase.RequiresSpecialViewStateEncoding プロパティ

定義

ブラウザーで VIEWSTATE 値を特別にエンコードする必要があるかどうかを示す値を取得します。

public:
 virtual property bool RequiresSpecialViewStateEncoding { bool get(); };
public virtual bool RequiresSpecialViewStateEncoding { get; }
member this.RequiresSpecialViewStateEncoding : bool
Public Overridable ReadOnly Property RequiresSpecialViewStateEncoding As Boolean

プロパティ値

true ブラウザーで VIEWSTATE 値を特別にエンコードする必要がある場合は 。それ以外の場合は false。 既定値は、false です。

次のコード例は、ブラウザーで VIEWSTATE 値を特別にエンコードする必要があるかどうかを判断する方法を示しています。

<%@ page language="C#"%>

<!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)
    {
        CheckBrowserCaps();
    }

    void CheckBrowserCaps()
    {
        String labelText = "";
        System.Web.HttpBrowserCapabilities myBrowserCaps = Request.Browser;
        if (((System.Web.Configuration.HttpCapabilitiesBase)myBrowserCaps).RequiresSpecialViewStateEncoding)
        {
            labelText = "Browser requires view state values to be specially encoded.";
        }
        else
        {
            labelText = "Browser does not require view state values to be specially encoded.";
        }

        Label1.Text = labelText;
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Browser Capabilities Sample</title>
</head>
<body>
    <form runat="server" id="form1">
        <div>
            Browser Capabilities:
            <p/><asp:Label ID="Label1" Runat="server" />
        </div>
    </form>
</body>
</html>
<%@ page language="VB" %>

<!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 System.EventArgs)
        CheckBrowserCaps()
    End Sub

    Function CheckBrowserCaps()

        Dim labelText As String = ""
        Dim myBrowserCaps As System.Web.HttpBrowserCapabilities = Request.Browser
        If (CType(myBrowserCaps, System.Web.Configuration.HttpCapabilitiesBase)).RequiresSpecialViewStateEncoding Then
            labelText = "Browser requires view state values to be specially encoded."
        Else
            labelText = "Browser does not require view state values to be specially encoded."
        End If

        Label1.Text = labelText

    End Function 'CheckBrowserCaps
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Browser Capabilities Sample</title>
</head>
<body>
    <form runat="server" id="form1">
        <div>
            Browser Capabilities:
            <p/><asp:Label ID="Label1" Runat="server" />
        </div>
    </form>
</body>
</html>

注釈

HTTP はステートレス プロトコルであり、 VIEWSTATE は、複数の要求にわたってクライアントの変更を保持するために使用される 1 つのメカニズムです。 Web ページ上の各コントロールには、クライアントによって行われた変更の蓄積を表す ViewState プロパティが含まれています。 Web フォーム ページでは、これらの変更は、hiddentype属性を持つ HTML <input>要素のvalueとしてポストバック データにエンコードされます。 例えば次が挙げられます。

<input type="hidden" name="__VIEWSTATE" value="t0PH_u56?cDxleHQ7P=" />

true場合、VIEWSTATE値のアルファベット以外の文字は、ブラウザーや中間ゲートウェイによって正しく送信されません。 これを修正するために、サーバー制御アダプターは、 VIEWSTATE 値のアルファベット以外の文字を、HTTP 要求でエンコードを必要としない文字に置き換えます。

適用対象