secPkgInfoA 结构 (sspi.h)

SecPkgInfo 结构提供有关安全包的一般信息,例如其名称和功能。

语法

typedef struct _SecPkgInfoA {
  unsigned long  fCapabilities;
  unsigned short wVersion;
  unsigned short wRPCID;
  unsigned long  cbMaxToken;
  SEC_CHAR       *Name;
  SEC_CHAR       *Comment;
} SecPkgInfoA, *PSecPkgInfoA;

成员

fCapabilities

描述安全包功能的位标志集。 此成员可以是以下标志的组合。

含义
SECPKG_FLAG_INTEGRITY
0x1
安全包支持 MakeSignatureVerifySignature 函数。
SECPKG_FLAG_PRIVACY
0x2
安全包支持 EncryptMessage (General) DecryptMessage (General) 函数。
SECPKG_FLAG_TOKEN_ONLY
0x4
包仅对消息的安全令牌部分感兴趣,将忽略任何其他缓冲区。 这是与性能相关的问题。
SECPKG_FLAG_DATAGRAM
0x8
支持 数据报样式的身份验证。 有关详细信息,请参阅 SSPI 上下文语义
重要Microsoft Kerberos 包不支持用户到用户模式下的数据报上下文。
 
SECPKG_FLAG_CONNECTION
0x10
支持面向连接的样式身份验证。 有关详细信息,请参阅 SSPI 上下文语义
SECPKG_FLAG_MULTI_REQUIRED
0x20
身份验证需要多个段。
SECPKG_FLAG_CLIENT_ONLY
0x40
未提供服务器身份验证支持。
SECPKG_FLAG_EXTENDED_ERROR
0x80
支持扩展错误处理。 有关详细信息,请参阅 扩展错误信息
SECPKG_FLAG_IMPERSONATION
0x100
支持服务器上下文中的 Windows 模拟。
SECPKG_FLAG_ACCEPT_WIN32_NAME
0x200
了解 Windows 主体和目标名称。
SECPKG_FLAG_STREAM
0x400
支持流语义。 有关详细信息,请参阅 SSPI 上下文语义
SECPKG_FLAG_NEGOTIABLE
0X800
可由 Microsoft Negotiate 安全包使用。
SECPKG_FLAG_GSS_COMPATIBLE
0x1000
支持 GSS 兼容性。
SECPKG_FLAG_LOGON
0x2000
支持 LsaLogonUser
SECPKG_FLAG_ASCII_BUFFERS
0x4000
令牌缓冲区采用 ASCII 字符格式。
SECPKG_FLAG_FRAGMENT
0x8000
支持将大型令牌分离到较小的缓冲区中,以便应用程序可以重复调用 InitializeSecurityContext (General) AcceptSecurityContext (General) 使用较小的缓冲区来完成身份验证。
SECPKG_FLAG_MUTUAL_AUTH
0x10000
支持相互身份验证。
SECPKG_FLAG_DELEGATION
0x20000
支持委派。
SECPKG_FLAG_READONLY_WITH_CHECKSUM
0x40000
安全包支持在调用 EncryptMessage 函数时使用校验和而不是就地加密。
SECPKG_FLAG_RESTRICTED_TOKENS
0x80000
支持具有受限令牌的调用方。
SECPKG_FLAG_NEGO_EXTENDER
0x00100000
安全包扩展 了 Microsoft Negotiate 安全包。 最多可以有一个此类型的包。
SECPKG_FLAG_NEGOTIABLE2
0x00200000
此包由 SECPKG_FLAG_NEGO_EXTENDER 类型的包协商。
SECPKG_FLAG_APPCONTAINER_PASSTHROUGH
0x00400000
此包接收来自应用容器应用的所有调用。
SECPKG_FLAG_APPCONTAINER_CHECKS
0x00800000
如果以下检查之一成功,此包将接收来自应用容器应用的调用。
  • 调用方具有默认凭据功能。
  • 目标是代理服务器。
  • 调用方已提供凭据。
SECPKG_CALLFLAGS_APPCONTAINER
0x00000001
调用方是应用容器。
SECPKG_CALLFLAGS_AUTHCAPABLE
0x00000002
调用方可以使用默认凭据。
SECPKG_CALLFLAGS_FORCE_SUPPLIED
0x00000004
调用方只能使用提供的凭据。

wVersion

指定包协议的版本。 必须为 1。

wRPCID

指定 DCE RPC 标识符(如果适用)。 如果包未实现 DCE 注册的安全系统之一,则使用保留值SECPKG_ID_NONE。

cbMaxToken

指定令牌的最大大小(以字节为单位)。

Name

指向包含安全包名称的以 null 结尾的字符串的指针。

Comment

指向以 null 结尾的字符串的指针。 这可以是包传递回的任何其他字符串。

注解

注意

sspi.h 标头将 SecPkgInfo 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 sspi.h (包括 Security.h)

另请参阅

EnumerateSecurityPackages

QuerySecurityPackageInfo