我想以编程方式将用户添加到团队项目中.我发现解决方案是这样的:
IGroupSecurityService gss = (IGroupSecurityService)objTFS.GetService(typeof(IGroupSecurityService));
Identity identity = gss.ReadIdentity(SearchFactor.AccountName, "Group name", QueryMembership.None);
gss.AddMemberToApplicationGroup(groupProject.Sid, member.Sid);
Run Code Online (Sandbox Code Playgroud)
但这仅适用于TFS已知的组/用户.
我想将一个Windows帐户添加到TFS
例如:
Windows帐户名称:TestTFS
密码:123456
然后以编程方式将TestTFS添加到TFS.
我知道有一个名为TeamFoundation Administration Tool的工具可以做到这一点,但我不想使用它.
在TFS2012中,IGroupSecurityService标记已过时并替换为IIdentityManagementService.
您可以IIdentityManagementService.ReadIdentity()与IIdentityManagementService.AddMemberToApplicationGroup()Windows用户一起使用添加到TFS组,即使这些Windows用户尚未为TFS所知.
这是通过指定ReadIdentityOptions.IncludeReadFromSource选项来完成的.
下面是将Windows用户添加VSALM\Barry到服务器/集合Fabrikam Fiber Web Team中的FabrikamFiberTeam Project中的(TFS组)的示例http://vsalm:8080/tfs/FabrikamFiberCollection.
您需要添加对以下内容的引用: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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4074 次 |
| 最近记录: |