DuplicateTokenEx

王朝百科·作者佚名  2012-05-20  
宽屏版  字体: |||超大  

该函数创建一个新的访问令牌来复制一个已经存在的标记。 这个函数可以创建一个主令牌或模拟令牌。语法BOOL WINAPI DuplicateTokenEx(

__in HANDLE hExistingToken,

__in DWORD dwDesiredAccess,

__in_opt LPSECURITY_ATTRIBUTES lpTokenAttributes,

__in SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,

__in TOKEN_TYPE TokenType,

__out PHANDLE phNewToken );参数hExistingToken

一个通过TOKEN_DUPLICATE标志打开的访问令牌的句柄。

dwDesiredAccess

指定为新的令牌请求的访问权。 该函数通过使用自由访问控制列表 (DACL)了来比较现有令牌的请求的访问权利,以确定哪些权利可以被授予或拒绝。 为了与现有的令牌的访问权利相同,可以指定创建的新的令牌的访问权限为零。 为了使得对所有调用者的访问权有效,应该指定MAXIMUM_ALLOWED。

要查看一个访问令牌的访问权限的列表,请查看 Access Rights for Access-Token Objects.

lpTokenAttributes [可选]

一个指针指向SECURITY_ATTRIBUTES结构,指定一个安全描述符标记为新的令牌,并确定子进程是否可以继承该标记。 如果lpTokenAttributes为NULL,令牌获得一个默认的安全描述符并且句柄不能被继承。 如果安全描述符中包含一个系统访问控制列表 (SACL),即使未在dwDesiredAccess中指定,令牌也可以获得ACCESS_SYSTEM_SECURITY访问权。

如果要设置新的令牌安全描述符的所有者,调用者的进程令牌必须含有SE_RESTORE_NAME权限集。

ImpersonationLevel

指定为SECURITY_IMPERSONATION_LEVEL结构中所枚举的值,用来表示新的令牌的模拟级别。

TokenType

指定下列从TOKEN_TYPE枚举的值的其中一个。

取值

意义

TokenPrimary

新的令牌是一个主令牌,你可以使用CreateProcessAsUser函数。

TokenImpersonation

新的令牌是一个模拟令牌。

.

phNewToken [输出]

一个指针指向一个接收新的令牌的可变的句柄。

当您使用完的新的令牌,请调用CloseHandle的功能关闭令牌的句柄。返回值如果函数成功,函数返回一个非零值。

如果函数失败,返回零。

为了获得更多的错误信息,请调用GetLastError函数。备注DuplicateTokenEx函数允许您创建一个主令牌,使得你可以使用CreateProcessAsUser函数。 这使得服务器应用程序可以模拟客户端创建一个具有安全上下文的客户端的进程。

请注意,DuplicateToken功能只能创建模拟令牌,这对于CreateProcessAsUser是无效的。要求最低支持的客户端

Windows 2000专业版

最低支持的服务器

Windows 2000服务器

头文件

WINBASE.H中(包括Windows.h中)

库文件

Advapi32.lib

DLL

Advapi32.dll

[1][2]

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有