是否可以在不提供用户名/密码的情况下冒充用户?基本上,我想使用 ShGetFolderPath()函数为用户(而不是当前用户)获取 CSIDL_LOCAL_APPDATA 。我目前拥有的只是该用户的SID。

有帮助吗?

解决方案

不,您必须调用Win32 API LogonUser 函数才能获取Windows帐户令牌,以便您可以进行模拟。

其他提示

您可以通过调用ZwCreateToken来模拟用户而无需提供密码。 请参阅本文中的CreatePureUserToken函数: 基于GUI的RunAsEx 您必须以管理员(或LocalSystem)身份运行才能实现此目的。

另一种技术是使用Windows Subauthentication Packages。 这允许您覆盖Windows内置身份验证,并允许LogonUser成功,即使没有提供密码。请参阅此知识库文章

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top