SOCKET_SECURITY_SETTINGS_IPSEC 结构 (mstcpip.h)

SOCKET_SECURITY_SETTINGS_IPSEC结构指定特定于 IPsec 的各种安全要求和设置。

语法

typedef struct _SOCKET_SECURITY_SETTINGS_IPSEC {
  SOCKET_SECURITY_PROTOCOL SecurityProtocol;
  ULONG                    SecurityFlags;
  ULONG                    IpsecFlags;
  GUID                     AuthipMMPolicyKey;
  GUID                     AuthipQMPolicyKey;
  GUID                     Reserved;
  UINT64                   Reserved2;
  ULONG                    UserNameStringLen;
  ULONG                    DomainNameStringLen;
  ULONG                    PasswordStringLen;
  wchar_t                  AllStrings[0];
} SOCKET_SECURITY_SETTINGS_IPSEC;

成员

SecurityProtocol

类型: SOCKET_SECURITY_PROTOCOL

一个SOCKET_SECURITY_PROTOCOL值,该值标识要在套接字上使用的安全协议的类型。 此成员必须设置为 SOCKET_SECURITY_PROTOCOL_IPSEC

SecurityFlags

类型: ULONG

一组标志,允许应用程序在套接字上设置特定的安全要求。 可能的值在 Mstcpip.h 头文件中定义。

含义
SOCKET_SETTINGS_GUARANTEE_ENCRYPTION
0x00000001
指示需要有保证的流量加密。 如果默认策略首选不使用加密的保护方法,则应设置此标志。 如果设置了此标志并且由于任何原因而无法加密,则不会发送任何数据包,并且不会建立连接。
SOCKET_SETTINGS_ALLOW_INSECURE
0x00000002
指示允许明文连接。 如果设置了此标志,则将以明文形式发送部分或全部已发送的数据包,尤其是在无法协商与对等方的安全性时。
注意 如果未设置此标志,则保证数据包永远不会以明文形式发送,即使安全协商失败也是如此。
 

IpsecFlags

类型: ULONG

IPsec 安全设置的标志。 可能的值在 Mstcpip.h 头文件中定义。

含义
SOCKET_SETTINGS_IPSEC_SKIP_FILTER_INSTANTIATION
0x00000001
设置此标志后,将省略套接字的 IPsec 筛选器实例化。 当应用程序知道其流量已存在 IPsec 筛选器和策略时,应设置此标志。 在具有 IPsec 策略的域中运行的应用程序也可以设置此标志。

AuthipMMPolicyKey

类型: GUID

AuthIP main 模式提供程序上下文的 Windows 筛选平台密钥的 GUID。 如果应用程序希望使用自定义main模式策略,应首先使用 FwpmProviderContextAdd0 函数添加相应的提供程序上下文,并在此成员中指定返回的键。 对于 GUID 为零,将忽略此字段。

AuthipQMPolicyKey

类型: GUID

AuthIp 快速模式提供程序上下文的 Windows 筛选平台密钥。 如果应用程序希望使用自定义快速模式策略,应首先使用 FwpmProviderContextAdd0 函数添加相应的提供程序上下文,并在此字段中指定返回的键。 对于 GUID 为零,将忽略此字段。

Reserved

类型: GUID

保留供将来使用。

Reserved2

类型: UINT64

保留供将来使用。

UserNameStringLen

类型: ULONG

AllStrings 成员中用户名的长度(以字节为单位)。

DomainNameStringLen

类型: ULONG

AllStrings 成员中域名的长度(以字节为单位)。

PasswordStringLen

类型: ULONG

AllStrings 成员中密码的长度(以字节为单位)。

AllStrings[0]

类型: wchar_t[]

一个字符串,其中包含按此顺序串联的用户名、域名和密码。

注解

Windows Vista 及更高版本支持 SOCKET_SECURITY_SETTINGS_IPSEC 结构。

SOCKET_SECURITY_SETTINGS_IPSEC结构旨在由高级应用程序使用,该应用程序需要更大的灵活性,并希望为其流量自定义 IPSec 策略。 调用 WSASetSocketSecurity 函数时,指向 SOCKET_SECURITY_SETTINGS_IPSEC 结构的指针需要强制转换为SOCKET_SECURITY_SETTINGS结构类型,以便在套接字上启用和应用安全性。

SOCKET_SECURITY_SETTINGS_IPSEC 结构的 SecurityProtocol 成员必须设置为 SOCKET_SECURITY_PROTOCOL_IPSEC,而不是SOCKET_SECURITY_PROTOCOL_DEFAULT

为了简化 IPsec) 部署 (Internet 协议安全性,Windows Vista 及更高版本支持 Internet 密钥交换 (IKE) 协议的增强版本,称为“经过身份验证的 Internet 协议 (AuthIP) ”。 AuthIP 在许多配置中提供简化的 IPsec 策略配置和维护,并为 IPsec 对等身份验证提供额外的灵活性。

SOCKET_SECURITY_SETTINGS_IPSEC结构中指定的某些 IPsec 设置最终可能与应用于套接字上的网络流量的实际设置不同。 例如,当应用程序指定自定义main模式或快速模式策略,但具有较高优先级的其他策略 (域策略(例如,) 为相同流量指定冲突的设置)时,可能会发生这种情况。 为了了解此类冲突,应用程序可以使用 Windows 筛选平台 API 来查询正在应用的策略并订阅通知。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
标头 mstcpip.h

另请参阅

关于 Windows 筛选平台

FwpmProviderContextAdd0

SOCKET_SECURITY_PROTOCOL

SOCKET_SECURITY_SETTINGS

使用安全套接字扩展

WSASetSocketSecurity

Windows 筛选平台

Windows 筛选平台 API 函数

Winsock 安全套接字扩展