我想以编程方式将用户添加到团队项目中。我发现解决方案是:
IGroupSecurityService gss = (IGroupSecurityService)objTFS.GetService(typeof(IGroupSecurityService));
Identity identity = gss.ReadIdentity(SearchFactor.AccountName, "Group name", QueryMembership.None);
gss.AddMemberToApplicationGroup(groupProject.Sid, member.Sid);
但这仅适用于TFS已知的群组/用户。
我想将一个Windows帐户添加到TFS
例如:
Windows帐户名称:TestTFS
密码:123456
然后以编程方式将TestTFS添加到TFS。
我知道有一个名为TeamFoundation Administration Tool的工具可以做到这一点,但我不想使用它。
答案 0 :(得分:6)
在TFS2012中,IGroupSecurityService
已标记为已过时,已替换为IIdentityManagementService
。
您可以使用IIdentityManagementService.ReadIdentity()
和IIdentityManagementService.AddMemberToApplicationGroup()
将Windows用户添加到TFS组,即使这些Windows用户尚未为TFS所知。
这是通过指定ReadIdentityOptions.IncludeReadFromSource
选项来完成的。
以下是在VSALM\Barry
服务器/集合的Fabrikam Fiber Web Team
团队项目中将Windows用户FabrikamFiber
添加到http://vsalm:8080/tfs/FabrikamFiberCollection
(TFS组)的示例。
您需要添加对Microsoft.TeamFoundation.Client
和Microsoft.TeamFoundation.Common
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.Framework.Client;
using Microsoft.TeamFoundation.Framework.Common;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var tpc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://vsalm:8080/tfs/FabrikamFiberCollection"));
var ims = tpc.GetService<IIdentityManagementService>();
var tfsGroupIdentity = ims.ReadIdentity(IdentitySearchFactor.AccountName,
"[FabrikamFiber]\\Fabrikam Fiber Web Team",
MembershipQuery.None,
ReadIdentityOptions.IncludeReadFromSource);
var userIdentity = ims.ReadIdentity(IdentitySearchFactor.AccountName,
"VSALM\\Barry",
MembershipQuery.None,
ReadIdentityOptions.IncludeReadFromSource);
ims.AddMemberToApplicationGroup(tfsGroupIdentity.Descriptor, userIdentity.Descriptor);
}
}
}
答案 1 :(得分:2)
我有同样的问题,最后是代码工作
NTAccount f = new NTAccount(userName);
SecurityIdentifier s = (SecurityIdentifier)f.Translate(typeof(SecurityIdentifier));
string userSid = s.ToString();
命名空间:using System.Security.Principal;
答案 2 :(得分:1)
要通过TFS API执行此操作,您需要访问2级信息。
您要添加的用户的sid,
要添加用户的组的sid =&GT;您在帖子中显示的代码会为您提供要添加用户的组的ID。
我发现2个带有示例代码的链接,我认为对您有所帮助,