当我使用 WNetAddConnection2 或 WNetAddConnection3 时,如何让操作系统保存我的凭据?

How do I make the operating system save my credentials when I use WNetAddConnection2 or WNetAddConnection3?

我写了一个window输入我的用户名和密码登录。 我使用以下方法无法保存凭据,怎么办

NETRESOURCEW net_resource {0};
net_resource.dwType = RESOURCETYPE_DISK | RESOURCETYPE_ANY;
TCHAR szRemotePath[MAX_PATH] {0};
_tcscpy_s(szRemotePath, MAX_PATH, remote_path.toStdWString().c_str());
net_resource.lpRemoteName = szRemotePath;
status_code = ::WNetAddConnection2(&net_resource, password.toStdWString().c_str(), user.toStdWString().c_str(),
CONNECT_UPDATE_PROFILE | CONNECT_INTERACTIVE | CONNECT_COMMANDLINE | CONNECT_CMD_SAVECRED);

您需要将凭据写入凭据库,例如以 CredWriteDomainCredentials. See my answer in this 问题为例(用 Delphi 编写,但转换为 C/C++ 应该非常简单)