HttpCachePolicy.SetAllowResponseInBrowserHistory(Boolean) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
当 allow
参数为 true
时,将使响应在客户端浏览器“历史记录”缓存中可用,而不论服务器上所做的 HttpCacheability 设置是什么。
public:
void SetAllowResponseInBrowserHistory(bool allow);
public void SetAllowResponseInBrowserHistory (bool allow);
member this.SetAllowResponseInBrowserHistory : bool -> unit
Public Sub SetAllowResponseInBrowserHistory (allow As Boolean)
参数
- allow
- Boolean
true
指示客户端浏览器将响应存储在“历史记录”文件夹中,否则为 false
。 默认值为 false
。
示例
下面的代码示例演示如何重写 SetAllowResponseInBrowserHistory 方法,以指示客户端将其历史记录中的响应存储在自定义 HttpCachePolicy中。
<%@ 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">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>HttpCachePolicy - SetAllowResponseInBrowserHistory - C# Example</title>
<script runat="server">
void Page_Load(Object sender, EventArgs e)
{
// When HttpCacheability is set to NoCache or ServerAndNoCache
// the Expires HTTP header is set to -1 by default. This instructs
// the client to not cache responses in the History folder. Thus,
// each time you use the back/forward buttons, the client requests
// a new version of the response.
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.ServerAndNoCache);
// Override the ServerAndNoCache behavior by setting the SetAllowInBrowserHistory
// method to true. This directs the client browser to store responses in
// its History folder.
HttpContext.Current.Response.Cache.SetAllowResponseInBrowserHistory(true);
// Display the DateTime value.
Label1.Text = DateTime.Now.ToLongTimeString();
}
</script>
</head>
<body>
<form id="Form1" method="post" runat="server">
<h3>HttpCachePolicy - SetAllowResponseInBrowserHistory - C# Example</h3>
<p>Click the Submit button a few times, and then click the Browser's Back button.<br />
The page should be stored in the Browser's History folder</p>
<p>Time: <asp:Label id="Label1" runat="server" Font-Bold="True" ForeColor="Red" /></p>
<asp:Button id="Button1" runat="server" Text="Submit" />
</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">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>HttpCachePolicy - SetAllowResponseInBrowserHistory - Visual Basic .NET Example</title>
<script runat="server">
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
' When HttpCacheability is set to NoCache or ServerAndNoCache
' the Expires HTTP header is set to -1 by default. This instructs
' the client to not cache responses in the History folder. Thus,
' each time you use the back/forward buttons, the client requests
' a new version of the response.
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.ServerAndNoCache)
' Override the ServerAndNoCache behavior by setting the SetAllowInBrowserHistory
' method to true. This directs the client browser to store responses in
' its History folder.
HttpContext.Current.Response.Cache.SetAllowResponseInBrowserHistory(True)
' Display the DateTime value.
Label1.Text = DateTime.Now.ToLongTimeString()
End Sub
</script>
</head>
<body>
<form id="Form1" method="post" runat="server">
<h3>HttpCachePolicy - SetAllowResponseInBrowserHistory - Visual Basic .NET</h3>
<p>Click the Submit button a few times, and then click the Browser's Back button.<br />
The page should be stored in the Browser's History folder</p>
<p>Time: <asp:Label id="Label1" runat="server" Font-Bold="True" ForeColor="Red" /></p>
<asp:Button id="Button1" runat="server" Text="Submit" />
</form>
</body>
</html>
注解
当设置为NoCache或 ServerAndNoCache Expires
HTTP 标头默认设置为 -1 时HttpCacheability;这告知客户端不要缓存历史记录文件夹中的响应,以便在每次使用后退/转发按钮时客户端请求新版本的响应。 可以通过调用SetAllowResponseInBrowserHistory参数设置为 true
的方法allow
来替代此行为。
如果 HttpCacheability 设置为其他 NoCache 值,则 ServerAndNoCache调用 SetAllowResponseInBrowserHistory 具有任一值 allow
的方法不起作用。
SetAllowResponseInBrowserHistory在 .NET Framework 版本 3.5 中引入。 有关详细信息,请参见版本和依赖关系。