C#检查两台计算机是否在可信域(或:决定winrm连接的认证机制)

问题描述:

我想通过winrm连接到其他计算机。我只获得了我想连接的目标计算机的FQDN。我不知道目标是否位于受信任的域中。 所以基本的问题是我如何现在需要哪种认证机制来连接? 有没有任何C#.NET方法来检查?C#检查两台计算机是否在可信域(或:决定winrm连接的认证机制)

或者是更简单的方法来设置Kerberos的身份验证机制,如果它失败设置它协商?

WSManConnectionInfo wci = new WSManConnectionInfo(TargetUri, ShellUri.ToString(), Credential); 
wci.AuthenticationMechanism = AuthenticationMechanism.Kerberos; 

有溶液

http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/0a5cb5a4-317c-4fcd-9221-85884af1217f

//Trusts for current domain 
Domain currentDomain = Domain.GetCurrentDomain(); 
var domainTrusts = currentDomain.GetAllTrustRelationships();