AxMsRdpClient9 Dismiss login dialog

2019-09-19 09:02发布

问题:

I am writing rdp client using c#. Simple example:

        AxMsRdpClient9NotSafeForScripting c = new AxMsRdpClient9NotSafeForScripting();
        Form1.Controls.Add(c);
        c.Server = s.ip;
        c.UserName = s.pass;
        c.AdvancedSettings9.ClearTextPassword = s.pass;
        c.Connect();

So, when I try to connect to Win7 or less it works perfect, but when I try to connect to Win Server 2012, rdpclient doesn't connect and doesn't return any errors. Connecting to win server works when I use this option:

c.AdvancedSettings9.EnableCredSspSupport = true;

but with this option, when I try to connect to win server with invalid credentials it shows dialog with login\pass fields, that I can't dissmiss programmatically, I have to do it "by hand". So question is: how can I connect to win server without

c.AdvancedSettings9.EnableCredSspSupport = true;

or how can I dissmiss login\pass dialog in code?

回答1:

The solution is to set AllowPromptingForCredentials to false.



回答2:

Here are the additional details to finish @davyjohnes answer:

....
Form1.Controls.Add(c);
var ocx = c.GetOcx() as MSTSCLib.IMsRdpClientNonScriptable5;
ocx.AllowPromptingForCredentials = false;
c.Server = s.ip;
....


标签: c# .net rdp mstsc