如何设置TFS组Edit Build Definition权限?SecurityNamespace安全令牌取值
解决TFS中
SecurityNamespace.SetPermissions的securityToken参数问题 我来帮你搞定这个securityToken的取值困惑!针对你要给GUID为yyy的团队项目中的TFS组设置Edit Build Definition权限的场景,securityToken的格式是有明确规则的:
正确的securityToken格式
对于团队项目级别的构建定义权限(也就是作用于该项目下所有构建定义),你需要传入以下格式的令牌:
string securityToken = $"vstfs:///Build/TeamProject/yyy";
把其中的yyy替换成你实际的团队项目GUID即可。
为什么是这个格式?
TFS的安全令牌用来指定权限生效的范围,在Build相关的安全命名空间中:
vstfs:///Build/TeamProject/[TeamProjectGuid]表示权限作用于整个团队项目的构建定义资源- 如果后续需要针对单个构建定义设置权限,令牌格式会变成
vstfs:///Build/BuildDefinition/[BuildDefinitionGuid]
完整的方法调用示例
结合你的代码,修正后的调用应该是这样的:
// 替换yyy为目标团队项目的GUID string securityToken = $"vstfs:///Build/TeamProject/yyy"; sn.SetPermissions(securityToken, groupIdentityDescriptor, action.Bit, 0, true);
额外注意点
- 确保你获取的
action.Bit确实对应Edit Build Definition的权限位(通常对应BuildPermissions.EditBuildDefinition枚举的值,十进制是256) - 确认
groupIdentityDescriptor是目标TFS组的有效标识描述符,比如通过组GUID获取的IdentityDescriptor实例
内容的提问来源于stack exchange,提问作者polinello
相关产品推荐
相关产品推荐

