0

我有一个在 sharepoint server 2010 站点上运行的 sharepoint webpart,它作为团队项目门户,因为它与 TFS 2010 集成。webpart 成功部署到该站点,我能够看到它。

使用 TfsConfigurationServer 类,我可以连接到 TFS 并获取所有项目集合的列表。如果我再往下走 1 步,我可以获得每个集合中所有团队项目的列表。当我尝试连接到版本控制服务器进行收藏时,我的问题就出现了。我想连接到版本控制服务器,以便获取该项目集合下的文件夹/文件列表。

    TfsTeamProjectCollection teamProjectCollection = configurationServer.GetTeamProjectCollection(collectionId);
try
   {
     VersionControlServer versionControl = (VersionControlServer)teamProjectCollection.GetService(typeof(VersionControlServer));
     TeamProject tp = versionControl.GetTeamProject("MyTeamProject");
     RecursionType recursion = RecursionType.Full;
     ItemSet itemSet = tp.VersionControlServer.GetItems(tp.ToString(), recursion);
     Item[] items = itemSet.Items;
     foreach (Item item in items)
     {
        l = new Label();
        l.Text = item.ChangesetId.ToString();
        this.Controls.Add(l);
     }
   }
   catch (Exception ex)
   {
     ex.ToString();
   }

上面的代码在 Try 块之后的第一行“versioncontrolserver”行失败。错误提示“重新验证时不允许更改用户”。为什么它试图改变用户?用户帐户(我的)可以访问 sharepoint 和 tfs。如果我添加一个 WindowsIdentity 变量,并在调试中使用断点运行,我可以确认 webpart 在我的用户帐户下运行。由于它在 versioncontrolserver 行上失败,因此在连接到 tfs 系统时似乎正在重新进行身份验证。如果是切换帐户,为什么会这样?它试图使用什么帐户?

4

0 回答 0