2012-08-01 109 views
0

我使用libcurl的,我无法找到使用Google /计算器回答的很基本的问题。如何从C++获取用于libcurl的NTLM/Kerberos的Windows凭据?

我想用libcurl的用户身份验证的远程Windows站点。为此,我需要将Windows凭据(域/用户/密码)传递给libcurl。如何从Visual C++检索当前登录用户的凭据?目标不是必须再次提示用户输入他们的Windows凭据。

+3

为了获取当前用户名和域名,您可以使用[GetUserNameEx(http://msdn.microsoft.com/en-us/library/windows/desktop/ms724435%28v=vs.85%29.aspx)或[GetUserName](http://msdn.microsoft.com/en-us/library/windows/desktop/ms724432%28v=vs.85%29.aspx)与[LookupAccountName](http://msdn.microsoft。 COM/EN-US /库/窗/台式机/ aa379159%28V = vs.85%29.aspx)。但是,在不提示用户的情况下检索密码,只要我现在不可能以合法的方式进行,但是您可以解密存储在SAM文件中的密码;) – Apokal 2012-08-02 07:19:27

+0

感谢Apokal。所以迅速做到这一点。如果在C#中执行它,使用DefaultCredential,您可以直接使用它登录。 – 2012-08-02 14:52:19

+0

@M W,不客气!祝你好运! – Apokal 2012-08-02 15:45:28

回答

1

你不能,如果你能,这是一个安全漏洞 木马会窃取用户的凭证。

通常是认证系统只能保存一个散列密码(MD5/SHA1),而不是密码本身所以即使一个有一个访问该散列他不能窃取密码。因为他需要密码而不是散列。 我不知道窗户,但我相信他们也这样做。