1

これがシナリオです..

===== scanario 1 ===== 1. ドキュメント ライブラリ「Gatorate Classic」 2. 4 つのグループがあります。グループ アルファ - 役割 - 読み取り グループ ベータ - 役割 - 編集 グループ エプセロン - 役割 - 編集 グループ ガンマ - 役割 - 編集

===== scanario 2 ===== 1. ドキュメント ライブラリ「Gatorate G2」 2. 4 つのグループがあります。グループ アルファ - 役割 - 編集 グループ ベータ - 役割 - 読み取り グループ エプセロン - 役割 - 編集 グループ ガンマ - 役割 - 読み取り


このリンクをたどろうとしましたが、http: //www.csharpest.net/?p= 74 ですが、これが私の解決策だとは思いません。誰かがこのようなシナリオを持っていましたか。同じグループですが、アクセス レベルが異なります。

4

1 に答える 1

2

ドキュメント ライブラリ (ページを含む) のアクセス許可レベルを変更する必要がありますが、別の必要性があるため、ページに特権を構築しました。

            string groupname = "Group Alpha";
            SPWeb web = getSPWeb();
            web.AllowUnsafeUpdates = true;
            SPGroup grupo = web.Groups[groupname];
            SPFile arq = null;
            SPFolder pasta = web.GetFolder("pages");
            arq = pasta.Files["page1.aspx"];

            if (arq.InDocumentLibrary)
            {
                SPListItem item = arq.Item;
                if (!item.HasUniqueRoleAssignments)
                    item.BreakRoleInheritance(false);
                SPRoleAssignmentCollection roles = item.RoleAssignments;
                while (roles.Count > 0)
                    roles.Remove(0);

                SPRoleAssignment atrib1 = new SPRoleAssignment(web.Groups[groupname] as SPPrincipal);
                atrib1.RoleDefinitionBindings.Add(web.RoleDefinitions.GetByType(SPRoleType.Administrator));
                roles.Add(atrib1);

            }
            web.AllowUnsafeUpdates = false;

これがお役に立てば幸いです。

于 2010-04-21T18:09:04.830 に答える