privacySetZonePreferenceW 函数 (winineti.h)

设置给定 URLZONEPrivacyType 的隐私设置

语法

DWORD PrivacySetZonePreferenceW(
  [in]           DWORD   dwZone,
  [in]           DWORD   dwType,
  [in]           DWORD   dwTemplate,
  [in, optional] LPCWSTR pszPreference
);

参数

[in] dwZone

类型为 DWORD 的值,该值指定要为其设置隐私设置的 URLZONE

[in] dwType

DWORD 类型的值,该值指定要为其设置隐私设置的 PrivacyType

[in] dwTemplate

类型为 DWORD 的值,该值指定要用于设置隐私设置的隐私模板

[in, optional] pszPreference

如果 dwTemplate 设置为 PRIVACY_TEMPLATE_CUSTOM,则此参数是自定义首选项的字符串表示形式。 否则,应将其设置为 NULL。 此字符串表示形式的说明包含在“备注”部分中。

返回值

如果成功,则返回 0。 否则,返回 winerr.h 中定义的错误之一。

注解

Internet 区域的这些隐私设置位于“Internet 选项”对话框的“隐私”选项卡上。

设置URLZONE_INTERNET的隐私选项涉及为这两个 PrivacyTypes 设置隐私模板。 仅当为这两个 PrivacyTypes 设置隐私时, “Internet 选项 ”中 “隐私”菜单上的滑块才会移动。

可以通过 pszPreference 参数设置给定 URLZONEPrivacyType 的自定义隐私首选项。 pszPreference 参数可以包含一系列规则,这些规则由描述隐私首选项的空格分隔。 请务必注意,规则本身不能包含空格。 pszPreference 具有以下结构,其中可以有多个逻辑规则:<签名><逻辑规则><special-rule>。

目前,签名必须设置为 IE6-P3PSettings/V1:。

逻辑规则采用以下格式:/<expression>=<decision>/。

表达式是由压缩策略令牌组成的布尔语句,使用运算符 & (逻辑 AND) 和 ! (逻辑非) 。 压缩策略令牌区分大小写。 (有关平台隐私首选项 (P3P) 隐私策略和压缩策略令牌的详细信息,请参阅 W3C:平台隐私首选项 (P3P) Project 规范。) 决策是一个小写字符,用于定义要对其压缩策略包含指定令牌的 cookie 执行的操作 () 。 下表列出了有效的决策字符。

字符 定义
a 接受 Cookie。
p 提示用户接受或拒绝 Cookie。
r 拒绝 Cookie。
l 将 cookie (仅在第一方上下文中发送) 。
d 将 Cookie(如果是永久性 Cookie)降级为会话 Cookie。
 

将按照逻辑规则的列出顺序计算逻辑规则。 要匹配的第一个逻辑规则(如果有)确定 Cookie 操作。

还允许使用空表达式。 如果表达式为空,则左侧的计算结果为 true。 这种形式的逻辑规则可以在一组规则的末尾使用,以捕获不属于其他类别的所有情况。

以下示例显示了有效的逻辑规则。

/DEM=d/
    Deny a cookie whose compact policy contains the DEM token
/CON&amp;!TEL=a/	
    Accept a cookie whose compact policy contains the CON token 
    and does not contain the TEL token
/=a/		
    Accept all cookies

使用 nopolicy、session 和 always 符号指定特殊规则。 nopolicy 符号用于指定在没有压缩策略时要执行的操作。 例如,nopolicy=d 指定在没有压缩策略的情况下将所有 Cookie 降级到会话 Cookie。 会话符号用于指定要对会话 Cookie 执行的操作,并且只能设置为 。 指定 session=a 时,无论压缩策略的内容如何,都接受所有会话 Cookie。 如果未指定此规则,则会话 Cookie 遵循与持久性 Cookie 相同的规则。 最后,使用 always 符号指定对所有内容执行相同的操作。 例如, always=d 指定拒绝所有 Cookie,而不考虑是否存在压缩策略。 请注意,always=d 等效于 /=d/。

以下示例显示了一个隐私首选项字符串,该字符串指定接受压缩策略包含 FIN/CONi 令牌对的 Cookie,拒绝包含 FIN/CON、FIN/CONo、FIN/CONa 和 GOV/PUB 令牌对或 TEL 令牌的压缩策略的 Cookie,并在 Cookie 的压缩策略包含 UNR 令牌时提示用户。 它还指定在没有压缩策略的情况下将 Cookie 降级为会话 Cookie,并指定接受与给定规则之一不匹配的所有 Cookie。 请注意,计算结果为 true 的第一个规则确定 Cookie 操作。

IE6-P3PSettings/V1: /FIN&amp;CONi=a/ /FIN&amp;CONo=r/ /FIN&amp;CONa=r/ /FIN&amp;CON=r/ 
/GOV&amp;PUB=r/ /TEL=r/ /UNR=p/ nopolicy=d /=a/

与 WinINet API 的所有其他方面一样,无法从 DllMain 或全局对象的构造函数和析构函数中安全地调用此函数。

注意 WinINet 不支持服务器实现。 此外,不应从服务使用它。 对于服务器实现或服务,请使用 Microsoft Windows HTTP Services (WinHTTP)
 

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winineti.h (包括 Wininet.h)
Library Wininet.lib
DLL Wininet.dll

另请参阅

InternetClearAllPerSiteCookieDecisions

InternetEnumPerSiteCookieDecision

InternetGetPerSiteCookieDecision

InternetSetPerSiteCookieDecision

PrivacyGetZonePreferenceW