public void Main_authenticate() { FreeRdpGlue.Main(new MainOptions { Hostname = RdpTargetHostname, Username = RdpTargetUsername, Password = null, EntryPoints = new EntryPoints { OnContextCreated = (IntPtr frgContext) => { _frgContext = frgContext; }, OnAuthenticate = (IntPtr usernameUtf8, IntPtr passwordUtf8, IntPtr domainUtf8) => { var username = MarshalHelper.ReadUtf8IntPtr(usernameUtf8); var usernameEntered = false; var password = MarshalHelper.ReadUtf8IntPtr(passwordUtf8); var passwordEntered = false; var domain = MarshalHelper.ReadUtf8IntPtr(domainUtf8); var domainEntered = false; if (username == null) { username = RdpTargetUsername; usernameEntered = true; } if (password == null) { password = RdpTargetPassword; passwordEntered = true; } if (domain == null) { domain = ""; domainEntered = true; } return(new FrgOnAuthenticateResult { UsernameUtf8 = usernameEntered ? MarshalHelper.AllocUtf8(username) : usernameUtf8, PasswordUtf8 = passwordEntered ? MarshalHelper.AllocUtf8(password) : passwordUtf8, DomainUtf8 = domainEntered ? MarshalHelper.AllocUtf8(domain) : domainUtf8, PasswordEntered = usernameEntered || passwordEntered || domainEntered, }); }, OnVerifyCertificate = (IntPtr x509CertBytes, UIntPtr x509CertBytesLength, IntPtr hostnameUtf8, ushort port, uint flags) => { FreeRdpGlue.Disconnect(_frgContext); return(FrgVerifyCertResult.TemporarilyTrusted); } } }); }
public void Main_print_certificate_and_disconnect() { FreeRdpGlue.Main(new MainOptions { Hostname = RdpTargetHostname, Username = RdpTargetUsername, Password = RdpTargetPassword, EntryPoints = new EntryPoints { OnContextCreated = (IntPtr __frgContext) => { _frgContext = __frgContext; }, OnVerifyCertificate = (IntPtr x509CertBytes, UIntPtr x509CertBytesLength, IntPtr hostnameUtf8, ushort port, uint flags) => { PrintCertificateData(x509CertBytes, x509CertBytesLength, hostnameUtf8, port, flags); FreeRdpGlue.Disconnect(_frgContext); return(FrgVerifyCertResult.TemporarilyTrusted); } } }); }
public void Main_calling_update_callbacks() { int counter = 0; FreeRdpGlue.Main(new MainOptions { Hostname = RdpTargetHostname, Username = RdpTargetUsername, Password = RdpTargetPassword, EntryPoints = new EntryPoints { OnContextCreated = (IntPtr frgContext) => { _frgContext = frgContext; }, OnVerifyCertificate = (IntPtr x509CertBytes, UIntPtr x509CertBytesLength, IntPtr hostnameUtf8, ushort port, uint flags) => { return(FrgVerifyCertResult.TemporarilyTrusted); }, UpdateCallbacks = new UpdateCallbacks { BeginPaint = (IntPtr frgContext) => { Debug.WriteLine($"{counter}: Begin Paint"); }, EndPaint = (IntPtr frgContext) => { Debug.WriteLine($"{counter}: End Paint"); counter += 1; if (counter == 10) { FreeRdpGlue.Disconnect(frgContext); } }, }, }, }); }