我想从非加入域的计算机(Azure角色)连接到我的TFS,因此该计算机必须以某种方式对我的TFS进行身份验证。我知道怎么用用户名+密码来做,但我不想把它保存在机器上。
因此,我想Configure my TFS for client certificate authentication,为域用户颁发客户端证书,将其安装在Azure角色上,并使用它进行连接。
上面的文章说要使用tfpt tweakui
(may actually be tfpt connections
},但它没有任何用户界面。
但无论如何,我想使用TFS API进行连接。但是,我不知道如何:
// ------- I know username+password... -------------------
var NetCreds = new System.Net.NetworkCredential("username", "password"); // No certificate here
var collection2 = new TfsTeamProjectCollection(new Uri("myuri"), new TfsClientCredentials(new WindowsCredential(NetCreds)));
// ------- And I know how to get a certificate... --------
var certStore = new X509Store(StoreName.My, StoreLocation.LocalMachine);
certStore.Open(OpenFlags.ReadOnly);
var certCollection = certStore.Certificates.Find(X509FindType.FindByThumbprint, "Thumbprint-that-I'll-provide", validOnly: true);
X509Certificate2 cert = certCollection.OfType<X509Certificate2>().Single();
// -------- But how to connect with it? ------------------
var TfsCreds = new TfsClientCredentials(cert); // Nope, no such method...
var collection = new TfsTeamProjectCollection("myuri", TfsCreds);
那么,我如何使用客户端证书身份验证连接到TFS?
答案 0 :(得分:2)
该页面需要更新。最后有一个重要的评论说明如下。您将需要使用这些较新的命令。
TFS 2010的一个变化是,服务器端的旧tfsadminutil configureconnections命令已替换为tfsconfig证书(http://msdn.microsoft.com/en-us/library/ee349260.aspx)。在客户端,tf certificates命令替换了tfpt tweakui。