[英]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.