1

TFSAPIを介してTFSアイテムのさまざまなバージョン管理権限を設定しようとしています。指定されたフォルダーパスの読み取りおよびチェックアウトのアクセス許可を正常に設定するために使用しているコードは次のとおりです。

        IIdentityManagementService ims = tpc.GetService<IIdentityManagementService>();
        TeamFoundationIdentity userIdentity = ims.ReadIdentity(IdentitySearchFactor.AccountName,
                                                "Guest",
                                                MembershipQuery.None,
                                                ReadIdentityOptions.IncludeReadFromSource);

        ISecurityService ss = tpc.GetService<ISecurityService>();
        SecurityNamespace securityNamespace = ss.GetSecurityNamespace(SecurityConstants.RepositorySecurityNamespaceGuid);

        securityNamespace.SetPermissions(folderPath, userIdentity.Descriptor, RegistryServicePermissions.AllPermissions, 0, true);

私が理解していないのは、チェックイン、ブランチの管理など、さまざまな設定を行うためにSetPermissionsの3番目のパラメーター(「allow」パラメーター)で使用する値です。MSDNのドキュメントはあいまいです。

    public abstract AccessControlEntry SetPermissions(
            string token,
            IdentityDescriptor descriptor,
            int allow,
            int deny,
            bool merge
    )

「allow」パラメータの説明は、単に次のように述べています。

    allow
    Type: System.Int32

どんな助けでも大歓迎です。

4

2 に答える 2

1

allow の内容は、この特定の ID で許可したい正確なパーミッションの値である必要があります。VersionedItemPermissions.Read

これは列挙型であるため、列挙型は TFS のさまざまなエンティティ (ビルド、バージョン管理、作業項目の追跡など) をサポートするため、int32 としてリストされます。

于 2013-02-04T17:34:30.077 に答える
1

次のように int パラメータを使用できます。

    int allow = (int)Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.Read;
    int deny = (int)(Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.AdminProjectRights |
                        Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.Checkin |
                        Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.CheckinOther |
                        Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.PendChange |
                        Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.Label |
                        Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.ReviseOther |
                        Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.LabelOther |
                        Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.Lock |
                        Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.ManageBranch |
                        Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.Merge |
                        Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.UndoOther |
                        Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.UnlockOther);
于 2016-01-15T19:20:50.730 に答える