Win32 LogonUser功能需要什么权限?

时间:2011-10-17 19:11:43

标签: winapi login

假设我想在我的代码中为具有uid Bob的用户运行LogonUser函数,Bob必须具备哪些权限才能调用此函数以Bob成功登录?

1 个答案:

答案 0 :(得分:0)

我不知道是否有任何列表,因为安全系统的某些部分可以使用自定义“插件”(Authentication PackagesSecurity Support Provider Interface/Security packagesGINA / Credential Providers )他们可能有其他要求。

在默认系统上,它可能是这样的:

  • 传递给LogonUser的指定用户帐户需要与登录类型(LOGON32_LOGON_ *)匹配的SE_*_LOGON_NAME帐户权限,并且登录需要传递LSA和/或域控制器要求(登录时间,密码未过期等) )
  • 调用LogonUser的过程需要SE_CHANGE_NOTIFY_NAME(默认情况下每个人都有),可能是SE_TCB_NAME(在Win2000上必需)。如果您要在返回的令牌上调用CreateProcessAsUser,您还需要SE_INCREASE_QUOTA_NAME和SE_ASSIGNPRIMARYTOKEN_NAME ......

如果您只想以另一个用户身份启动进程,可能需要使用CreateProcessWithLogonW,如果您只想验证凭据this KB article有一个不使用LogonUser的代码示例(似乎喜欢它可能有一些访客帐户问题但是