访问远程桌面

Tam*_*ton 5 c# remote-desktop

我正在尝试用 C# 以编程方式打开远程桌面会话。我找到了这个教程,并遵循了它。我有一个仅包含AxMSTSCLib.AxMsRdpClient8NotSafeForScripting名为的表单rdp,然后我有以下代码:

    public RDPViewer()
    {
        InitializeComponent();
        rdp.Server = "localhost";
        rdp.UserName = "<userName>";

        IMsTscNonScriptable secured = (IMsTscNonScriptable)rdp.GetOcx();
        secured.ClearTextPassword = "<password>";
        rdp.Connect();
    }
Run Code Online (Sandbox Code Playgroud)

(用户名和密码目前是硬编码的,这只是第一个测试,看看它是如何工作的)

但是,当我尝试运行它时,我收到一个错误弹出窗口:

连接无法继续,因为未启用身份验证,并且远程计算机需要启用身份验证才能连接。

谷歌搜索此错误发现几个网站指出此错误的解决方案是转到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp并将“SecurityLayer”值设置为 0,然后重新启动,但我已经这样做了,但仍然收到错误。

我已经进行了设置,因此可以通过 RDP 连接到本地主机,并且我可以使用与传入代码相同的凭据使用远程桌面连接进行连接。

Tam*_*ton 2

我最后发现了问题。事实证明它是在组策略中设置的,而不是在注册表中设置的。我在这里找到了答案- 相关的组策略设置是“需要对远程 (RDP) 连接使用特定的安全层”,可以在 中找到Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Security

通过将该策略中的安全层选项从 SSL (TLS 1.0) 更改为 RDP,我能够进行连接。