public static async Task <PingResult> Ping(KerberosCredential credential, Krb5Config config, ILoggerFactory logger = null) { credential.Configuration = config; var asReqMessage = KrbAsReq.CreateAsReq(credential, AuthenticationOptions.Renewable); var asReq = asReqMessage.EncodeApplication(); var transport = new KerberosTransportSelector( new IKerberosTransport[] { new TcpKerberosTransport(logger), new UdpKerberosTransport(logger), new HttpsKerberosTransport(logger) }, config, logger ) { ConnectTimeout = TimeSpan.FromSeconds(5) }; var result = new PingResult { AsReq = asReqMessage }; try { result.AsRep = await transport.SendMessage <KrbAsRep>(credential.Domain, asReq); } catch (KerberosProtocolException pex) { result.Error = pex.Error; } return(result); }