【问题标题】:Permission error when trying to programatically connect to TFS 2010尝试以编程方式连接到 TFS 2010 时出现权限错误
【发布时间】:2010-12-17 17:00:09
【问题描述】:

我正在尝试通过 .Net Microsoft.TeamFoundation.Client.TeamFoundationServer 类(在本例中通过 powershell)连接到 TFS 2010。

我为构造函数参数传递了我通过 Visual Studio 连接到的相同 url,以及通过 Security.Principal.WindowsIdentity.GetCurrent() 获得的我的 Active Directory 凭据。但是,当我调用 Authenticate() 方法时,我收到以下错误(我的凭据的子域和用户名)。

异常调用“身份验证” “0”参数:“TF50309: 以下帐号没有 足够的权限来完成 操作:(域)\(用户名)。这 需要以下权限 执行此操作:查看 集合级信息。”

所以是的,无论这个权限是什么,我都可以对我们的系统管理员进行调试,但我不知道我为什么需要它;毕竟,我可以通过 Visual Studio 或通过 Web 界面(通过使用“/web”作为 url 后缀)很好地连接到 TFS,那么有什么用呢?我错过了什么无法以编程方式进行身份验证?

额外提示:我们还有一个 TFS2008 服务器 - 按照完全相同的过程,我能够毫无问题地对其进行身份验证

【问题讨论】:

  • 您是否使用 Team Explorer 2008 或 2010 中的 dll 连接到您的服务器?如果是2008,则需要“Foward Patch”中的dll(允许2008客户端连接到2010服务器)。
  • 另一点:您使用什么连接字符串连接到您的服务器? 2010年有“项目合集”,所以连接字符串和2008年不一样。

标签: .net tfs permissions tfs-sdk


【解决方案1】:

确保在连接 URI 中包含项目集合(例如 http://tfs:8080/DefaultCollection

【讨论】:

  • 如果集合名称中有空格,它是如何工作的? %20 ?
  • 当您使用 Uri x = new Uri("http://tfs:8080/Default Collection") 创建 URI 时,它会自动为您使用 %20 对其进行 URLEncode,因此请保留空格。
  • 我遇到了类似的问题,通过命令行 TfsBuild.exe 连接并关闭了顶级 Team-Project-Collection,呵呵!谢谢+1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-06
  • 1970-01-01
  • 2018-05-29
  • 2022-01-12
  • 2023-03-09
  • 1970-01-01
相关资源
最近更新 更多