无法通过传统API(TfsTeamProjectCollection)向TFS 2018进行身份验证

无法通过传统API(TfsTeamProjectCollection)向TFS 2018进行身份验证,api,authentication,tfs,tfs-2018,Api,Authentication,Tfs,Tfs 2018,我尝试使用遗留API进行身份验证,因为我需要其中的一些方法,而这些方法在新的RESTAPI中不可用。虽然RESTAPI中通过访问令牌进行的身份验证工作正常,但使用遗留API进行身份验证的所有尝试似乎都失败了。访问令牌后面的用户不是登录的windows用户。我的代码如下所示: var-tokenCredentials=new-VssBasicCredential(string.Empty,token); var connectUrl=settings.ProjectCollectionUrl.To

我尝试使用遗留API进行身份验证,因为我需要其中的一些方法,而这些方法在新的RESTAPI中不可用。虽然RESTAPI中通过访问令牌进行的身份验证工作正常,但使用遗留API进行身份验证的所有尝试似乎都失败了。访问令牌后面的用户不是登录的windows用户。我的代码如下所示:

var-tokenCredentials=new-VssBasicCredential(string.Empty,token);
var connectUrl=settings.ProjectCollectionUrl.ToUrl();
var vssConnection=新的vssConnection(connectUrl、tokenCredentials);
//成功的
wait Task.Run(async()=>wait-vssConnection.ConnectAsync());
//成功的
wait Task.Run(async()=>wait vssConnection.ParentConnection.ConnectAsync());
var projectCollection=new-tfstreamprojectcollection(vssConnection.Uri、vssConnection.Credentials);
//由于未授权而失败。
projectCollection.Authenticate();

我还尝试了其他几种方法(例如,使用网络凭据创建win凭据。但是所有尝试都会失败,出现未授权的异常。旧API中是否存在已知的严重错误?

Ooh,我花了很长时间才发现问题。TfsTeamProjectCollection类上的Authenticate方法需要“标识(管理)”权限。我没有为我的访问令牌启用它,因为我想生成一个只读令牌,这就是为什么我只启用了所有“读取”权限

另一方面,RESTAPI不需要该权限就可以以只读方式运行


我希望这能帮助其他遇到此线程的人。

嗨,汤姆,谢谢你的分享,你可以,它可以帮助其他遇到相同问题的社区成员,我们可以存档此线程,谢谢。