我正在使用c#编写rdp客户端。简单的例子:
AxMsRdpClient9NotSafeForScripting c = new AxMsRdpClient9NotSafeForScripting();
Form1.Controls.Add(c);
c.Server = s.ip;
c.UserName = s.pass;
c.AdvancedSettings9.ClearTextPassword = s.pass;
c.Connect();
因此,当我尝试连接到Win7或更少时,它工作得很完美,但是当我尝试连接到Win Server 2012时,rdpclient没有连接并且不会返回任何错误。使用此选项时,连接到win服务器可以正常工作:
c.AdvancedSettings9.EnableCredSspSupport = true;
但是使用此选项,当我尝试使用无效凭据连接到win服务器时,它会显示login \ pass字段的对话框,我无法以编程方式解决,我必须手动执行#34;#" 34 ;. 所以问题是:如何在没有
的情况下连接到win服务器c.AdvancedSettings9.EnableCredSspSupport = true;
或如何在代码中解除login \ pass对话框?
答案 0 :(得分:2)
解决方案是将AllowPromptingForCredentials设置为false。
答案 1 :(得分:0)
以下是完成@davyjohnes答案的其他详细信息:
....
Form1.Controls.Add(c);
var ocx = c.GetOcx() as MSTSCLib.IMsRdpClientNonScriptable5;
ocx.AllowPromptingForCredentials = false;
c.Server = s.ip;
....