是否可以在 WNetAddConnection2W 中使用存储的 Windows 凭据作为用户和密码?

问题描述 投票:0回答:1

交互式登录 Windows 后,会自动连接具有存储凭据的映射网络驱动器。如果远程网络的用户不同,这些凭据将从 Windows 凭据管理器中检索为“Windows 凭据”。

我试图在由

CreateProcessWithLogon
命令创建的进程中实现相同的目标。在这种情况下,可以通过范围为
WNetOpenEnum
RESOURCE_REMEMBERED
来识别记住的连接。通过
WNetGetConnection
可以找出哪些资源未连接。

命令

WNetAddConnection2W
允许进行此连接。可以使用默认用户和密码,因此可以连接这些映射的网络驱动器。也可以将它们作为字符串提供,但看起来没有办法让此命令从 Windows 凭据管理器读取凭据,即使有标志来存储它们。

因此,我尝试通过

CredEnumerate
CredRead
来检索凭证,但检索到的
CREDENTIALW.CredentialBlobSize
为 0,而
CredentialBlob
为 NULL。

由于

WNetAddConnection2W
包含将输入的凭据存储到凭据管理器的标志,因此您也可以使用它们似乎是合乎逻辑的。但我没能弄清楚如何。

我希望有人能给我提示如何解决这个问题。

c++ winapi credentials mapped-drive
1个回答
0
投票

与此同时,我发现域凭据无法通过设计检索,只能写入:https://learn.microsoft.com/en-us/windows/win32/secauthn/kinds-of-credentials

因此不可能实现我想要的目标。

© www.soinside.com 2019 - 2024. All rights reserved.