我试图在C#中以编程方式打开远程桌面会话。我找到了这教程,并遵循了它。我有一个表单,它只是由一个名为AxMSTSCLib.AxMsRdpClient8NotSafeForScripting的rdp组成,然后我有以下代码:
public RDPViewer()
{
InitializeComponent();
rdp.Server = "localhost";
rdp.UserName = "<userName>";
IMsTscNonScriptable secured = (IMsTscNonScriptable)rdp.GetOcx();
secured.ClearTextPassword = "<password>";
rdp.Connect();
}(用户名和密码目前都是硬编码的,这只是第一次测试它是如何工作的)
但是,当我试图运行它时,会弹出一个错误:
由于未启用身份验证,并且远程计算机要求启用身份验证才能连接,因此无法继续连接。
搜索此错误时,会发现几个站点指出,解决此错误的方法是转到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp并将"SecurityLayer“值设置为0,然后重新启动,但我已经这样做了,但仍然得到了错误。
我已经设置好了,所以RDP可以定位到本地主机,并且我可以使用与代码传递的凭证相同的远程桌面连接进行连接。
发布于 2017-06-30 15:54:17
我最终发现了这个问题。原来它是在组策略中设置的,而不是在注册表中设置的。我找到了这里的答案--相关的组策略设置是“需要为远程连接使用特定的安全层”,并在Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Security中找到。
通过将策略中的安全层选项从SSL (TLS 1.0)更改为RDP,我能够连接。
发布于 2017-11-03 05:09:21
这对我有效,不需要更改远程计算机的设置:
rdpClient.AdvancedSettings9.EnableCredSspSupport = true;请参见:为身份验证启用凭据安全支持提供程序:https://technet.microsoft.com/en-us/library/ff393716(v=ws.10).aspx
https://stackoverflow.com/questions/44845555
复制相似问题