2

我将 Internet Explorer 8 配置为通过代理服务器进行连接,每当我打开它时,我都会看到这个对话框,其中包含我的缓存凭据:

Internet Explorer 凭据对话框

我需要从我的 Java 应用程序中以编程方式检索出现在此对话框中的缓存用户名字符串。我该怎么做呢?

编辑:它与注册表项 \HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\DefaultConnectionSettings 是否有关?

4

2 回答 2

0

您可以在 Java 中查询系统属性以访问此信息。这篇文章讨论了如何:

如何设置 JVM 使用的代理

向下滚动并查看有关如何执行此操作的示例代码的第二个答案。

您应该搜索并查看此站点上的其他一些相关帖子。

于 2013-05-03T01:06:27.250 回答
0

此工具使用 Windows Vault。从 Windows 7 开始,存储的凭据不再保存在注册表中,而是保存在一个名为“Vault”的地方。您需要访问一个名为 vaultcli.dll 的 dll 并映射以下函数,然后使用它们来获取存储的任何密码或登录详细信息。

BOOL InitVault(VOID) 
{

    BOOL bStatus = FALSE;

    hVaultLib = LoadLibrary(L"vaultcli.dll");

    if (hVaultLib != NULL) 
    {
        pVaultEnumerateItems = (VaultEnumerateItems)GetProcAddress(hVaultLib, "VaultEnumerateItems");
        pVaultEnumerateVaults = (VaultEnumerateVaults)GetProcAddress(hVaultLib, "VaultEnumerateVaults");
        pVaultFree = (VaultFree)GetProcAddress(hVaultLib, "VaultFree");
        pVaultGetItemW7 = (VaultGetItemW7)GetProcAddress(hVaultLib, "VaultGetItem");
        pVaultGetItemW8 = (VaultGetItemW8)GetProcAddress(hVaultLib, "VaultGetItem");
        pVaultOpenVault = (VaultOpenVault)GetProcAddress(hVaultLib, "VaultOpenVault");
        pVaultCloseVault = (VaultCloseVault)GetProcAddress(hVaultLib, "VaultCloseVault");

        bStatus = (pVaultEnumerateVaults != NULL)
            && (pVaultFree != NULL)
            && (pVaultGetItemW7 != NULL)
            && (pVaultGetItemW8 != NULL)
            && (pVaultOpenVault != NULL)
            && (pVaultCloseVault != NULL)
            && (pVaultEnumerateItems != NULL);
    }
    return bStatus;
}
于 2017-01-29T22:49:42.343 回答