我正在尝试以编程方式在C#中打开远程桌面会话。我找到了this教程,然后跟着它。我的表单只包含一个名为AxMSTSCLib.AxMsRdpClient8NotSafeForScripting
的{{1}},然后我有以下代码:
rdp
(用户名和密码现在是硬编码的,这只是第一次看它是如何工作的测试)
但是当我尝试运行它时,我收到一个错误弹出窗口:
由于未启用身份验证且远程计算机要求启用身份验证以进行连接,因此无法继续进行连接。
谷歌搜索此错误发现有几个网站声明此错误的解决方案是转到 public RDPViewer()
{
InitializeComponent();
rdp.Server = "localhost";
rdp.UserName = "<userName>";
IMsTscNonScriptable secured = (IMsTscNonScriptable)rdp.GetOcx();
secured.ClearTextPassword = "<password>";
rdp.Connect();
}
并将“SecurityLayer”值设置为0,然后重新启动,但我已经完成了此操作并仍然收到错误。
我已经进行了设置,因此可以将RDP转换为localhost,并且可以使用与我在代码中传递的相同凭据使用远程桌面连接进行连接。
答案 0 :(得分:2)
我最终发现了这个问题。事实证明它是在组策略中设置的,而不是在注册表中。我找到了答案here - 相关的组策略设置是&#34;要求使用特定的安全层进行远程(RDP)连接&#34;,可以在Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Security
找到。
通过将该策略中的安全层选项从SSL(TLS 1.0)更改为RDP,我能够连接。
答案 1 :(得分:1)
这对我有用,无需更改远程计算机的设置:
rdpClient.AdvancedSettings9.EnableCredSspSupport = true;
请参阅:启用凭据安全支持提供程序进行身份验证:https://technet.microsoft.com/en-us/library/ff393716(v=ws.10).aspx