繁体   English   中英

使用C#/ Windows7连接并登录到远程桌面

[英]Connecting and logging in to a remote desktop using C# / Windows7

我想编写一个应用程序,该应用程序允许用户输入我们公司网络中一台计算机的登录凭据,然后将其连接到该计算机。 显然,用于远程桌面连接的登录凭据不再保存在Windows7(和Vista?)中的* .RDP文件中,因此该方法不起作用。 我知道我可以使用rundll32 keymgr.dll,KRShowKeyMgr查看保存的凭据,但不能以编程方式将凭据添加到此存储。 任何指针或什至代码示例(最好是C#,但是任何事情都可以)将不胜感激。

您仍然可以将密码放在.rdp文件中,它仍然会使用它们-除非存在用于显式忽略它的组策略设置。

编辑

就其价值而言,该文章有点过分杀人。 所有杂乱的P / Invoke业务都有一个托管包装。 如果您通过ProtectedData类使用.NET 2.0,则有更简单的方法。 (首先添加对System.Security程序集的引用)。

添加该参考后,您可以执行以下操作:

public string Encrypt(string toEncrypt)
{
    var userData = Encoding.Unicode.GetBytes(toEncrypt ?? String.Empty);
    return "password 51:b:" + ToHexString(ProtectedData.Protect(userData, new byte[0], DataProtectionScope.CurrentUser));
}

private static string ToHexString(byte[] bytes)
{
    if (bytes == null)
    {
        return String.Empty;
    }
    return bytes.Aggregate(new StringBuilder(), (sb, b) => sb.AppendFormat("{0:x2}", b)).ToString();
}

就是这样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM