MSV1_0_LM20_LOGON 结构 (ntsecapi.h)

MSV1_0_LM20_LOGON 结构包含网络登录中使用的登录信息。

它由 LsaLogonUser 使用

语法

typedef struct _MSV1_0_LM20_LOGON {
  MSV1_0_LOGON_SUBMIT_TYPE MessageType;
  UNICODE_STRING           LogonDomainName;
  UNICODE_STRING           UserName;
  UNICODE_STRING           Workstation;
  UCHAR                    ChallengeToClient[MSV1_0_CHALLENGE_LENGTH];
  STRING                   CaseSensitiveChallengeResponse;
  STRING                   CaseInsensitiveChallengeResponse;
  ULONG                    ParameterControl;
} MSV1_0_LM20_LOGON, *PMSV1_0_LM20_LOGON;

成员

MessageType

一个MSV1_0_LOGON_SUBMIT_TYPE值,该值指定要请求的登录类型。 此成员必须设置为 MsV1_0Lm20LogonMsV1_0NetworkLogon

如果此成员设置为 MsV1_0Lm20Logon,则MSV1_0包将忽略 ParameterControl 成员。

LogonDomainName

包含登录域名称的 UNICODE_STRING 。 指定的域名必须是此计算机的受信任域列表中的 Windows 域 (或混合域) 。 例如,如果登录域名 (未知,则对于未) 提供此信息的客户端,应将此成员作为零长度字符串传入。 此域是身份验证机构。

UserName

表示用户的帐户名的 UNICODE_STRING 。 名称的长度最大为 255 字节。 该名称被视为不区分大小写。

Workstation

一个UNICODE_STRING,其中包含从中启动用户登录请求的客户端工作站的计算机名称。

ChallengeToClient[MSV1_0_CHALLENGE_LENGTH]

包含上一次调用 LsaCallAuthenticationPackage 返回的质询, 当 MsV1_0Lm20ChallengeRequest 指定为消息类型时。 有关详细信息,请参阅 MSV1_0_PROTOCOL_MESSAGE_TYPEMsV1_0Lm20ChallengeRequest的说明。 这使 身份验证包 能够确定质询响应是否正确。

CaseSensitiveChallengeResponse

包含客户端的 Unicode 密码区分大小写的一些函数。 通常,它将是由区分大小写的密码版本加密的 ChallengeToClient 成员。

某些客户端仅提供 明文 区分大小写 的 Unicode 密码。 在这种情况下,此成员指向该 纯文本 密码。 MSV1_0身份验证包可能接受此非身份验证窗体,具体取决于配置选项。

某些客户端不支持区分大小写 的 Unicode 密码。 在这种情况下,此成员应包含零长度字符串。

CaseInsensitiveChallengeResponse

包含客户端的 MBCS) 密码 (不区分大小写的多字节字符集的一些函数。 通常,它将是由不区分大小写的密码版本加密的 ChallengeToClient 成员。

仅支持 MBCS 而不支持 Unicode 的客户端提供不区分大小写的 纯文本 MBCS 密码。 在这种情况下,此成员指向该 纯文本 密码。 MSV1_0身份验证包将接受此非身份验证窗体,具体取决于配置选项。

ParameterControl

指定其他参数的属性。 这可以是以下一个或多个标志。

含义
MSV1_0_CLEARTEXT_PASSWORD_ALLOWED
02
LanMan2.0 或 LanMan1.0 发送 纯文本 密码而不是质询响应。 若要允许在 NetworkLogon 消息中使用纯文本密码,应用程序必须提供此标志。
MSV1_0_UPDATE_LOGON_STATISTICS
04
更新帐户的登录统计信息。 如果未设置此标志,则成功登录后,错误的密码计数将设置为零。
MSV1_0_RETURN_USER_PARAMETERS
08
如果指定此标志,则MSV1_0_LM20_LOGON_PROFILE返回缓冲区的 UserParameters 成员有效。
MSV1_0_DONT_TRY_GUEST_ACCOUNT
10
阻止用户使用来宾帐户登录。
MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT
20
如果设置了此标志,则可以使用域控制器帐户进行身份验证;否则,只能使用用户帐户。
MSV1_0_RETURN_PASSWORD_EXPIRY
40
导致在输出缓冲区中返回的 MSV1_0_LM20_LOGON_PROFILE 结构的 LogoffTime 成员中返回密码过期时间。
MSV1_0_USE_CLIENT_CHALLENGE
80
表示 CaseInsensitiveChallengeResponse 包含前 8 个字节中的客户端质询。
MSV1_0_TRY_GUEST_ACCOUNT_ONLY
100
使用户使用来宾帐户登录。
MSV1_0_RETURN_PROFILE_PATH
200
返回 EFS) 加密 文件系统 (配置文件路径。 EFS 使用配置文件路径查找用户的配置文件,并查找用于加密和解密文件的用户的密钥。 此信息不会返回给调用方;它存储在 LSA 中并由内部进程使用。
MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY
400
在正常操作中, LogonDomainName 成员用作建议。 使用 NetLogon 服务的包 () 将继续将登录请求传递到受信任域路径中较高级别的域控制器,直到有人授权拒绝登录。

此标志替代该行为,以便只有指定的域控制器才会尝试处理登录。 如果 LogonDomainName 为空,则不会尝试登录。

MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT
800
允许远程启动客户端使用计算机帐户登录。
MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED
4000
允许用户使用明文密码。

Windows XP 和 Windows Server 2003: 不支持。

MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY
8000
仅允许将域用于路由。

Windows XP 和 Windows Server 2003: 不支持。

MSV1_0_ALLOW_MSVCHAPV2
10000
允许 SubAuthentication 登录。

Windows XP 和 Windows Server 2003: 不支持。

MSV1_0_S4U2SELF
20000
允许 S4U 客户端在没有密码的情况下登录。

Windows Vista、Windows Server 2003 SP2、Windows XP 和 Windows Server 2003: 不支持。

MSV1_0_CHECK_LOGONHOURS_FOR_S4U
40000
检查客户端上的 S4U 日志的登录小时数。

Windows Vista、Windows Server 2003 SP2、Windows XP 和 Windows Server 2003: 不支持。

MSV1_0_INTERNET_DOMAIN
80000
允许 Internet 用户登录。 此标志应由来自身份验证包的直接调用使用,而不是由 netlogon 调用。

Windows 7、Windows Server 2008 R2、Windows Vista、Windows Server 2008、Windows XP 和 Windows Server 2003: 不支持。

注解

如果 UserNameCaseSensitiveChallengeResponseCaseInsensitiveChallengeResponse 成员都包含零长度字符串,则将为登录生成匿名令牌。 此匿名令牌使用户无法访问受保护的系统资源,但允许访问不受保护的系统资源。 服务器使用此方法支持 NULL 会话。

要求

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

另请参阅

LsaCallAuthenticationPackage

LsaLogonUser

MSV1_0_LM20_LOGON_PROFILE

MSV1_0_LOGON_SUBMIT_TYPE

MSV1_0_PROTOCOL_MESSAGE_TYPE