0

ユーザーが会社のネットワーク内のマシンのログイン資格情報を入力して、そのマシンに接続できるようにするアプリケーションを作成したいと考えています。どうやら、リモート デスクトップ接続のログイン資格情報は、Windows7 (および Vista?) では *.RDP ファイルに保存されなくなったため、このアプローチは機能しません。を使用して保存された認証情報を表示できることはわかっていますrundll32 keymgr.dll,KRShowKeyMgrが、プログラムでこのストレージに認証情報を追加する方法はわかりません。ポインターやコード例 (できれば C# ですが、何でも構いません) をいただければ幸いです。

4

1 に答える 1

3

パスワードを.rdpファイルに入れることはできますが、明示的に無視するグループポリシー設定がない限り、引き続きパスワードを尊重します。

編集

価値があるのは、その記事は少しやり過ぎです。煩雑な P/Invoke ビジネスのすべてにマネージド ラッパーがあります。クラスを使用して .NET 2.0 を使用している場合は、より簡単な方法がありますProtectedData。(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();
}

以上です。

于 2011-09-20T17:26:02.397 に答える