2010-12-13 9 views
2

SharePointオブジェクトモデルを使用してプログラムで新しいサイトを作成しています(カスタムWebパーツを使用)。それはうまく動作しますが、グループにも許可を与えることが可能かどうか疑問に思っていますか?サイトにプログラムでグループ(SharePoint)のアクセス許可を与えることは可能ですか?

私は私が許可GUIで

newWeb = SPContext.GetContext(HttpContext.Current).Web.Webs.Add(siteUrl, siteName, siteDescription, (uint)1033, siteTemplate, true, false); 

を継承しないようにそれを設定しているサイトを作成するときに、私はその後、(新しく作成されたサイト上の)サイトの操作に行くことができます - > GRANT権限に - >グループの検索このグループに対して許可を与えます。したがって、親サイトmyGroupにフルアクセス権を持つことができますが、このサイトではコントリビューションなどに設定できます。サイトを作成するとき、または作成した直後(プログラムで)にこれを行うことは可能ですか?

ありがとうございます。

答えて

2

グループにロール定義を割り当てる必要があります。

ここでは、あらかじめ定義されたsharepointの役割定義のグループ1を割り当てるためのコードを示します。

public bool AssignExistingGroupToWeb(SPWeb siteWeb, string GroupName, SPRoleDefinition roleDefinition) 
{ 
//retrieve a group 
SPGroup siteGroup = siteWeb.SiteGroups.FindGroupByName(GroupName); 

//create a role assignment for the group using the specified SPRoleDefinition 
//examples of roles as "Full Control", "Design", etc... 
SPRoleAssignment roleAssignment = new SPRoleAssignment(siteGroup); 
roleAssignment.RoleDefinitionBindings.Add(roleDefinition); 
siteWeb.RoleAssignments.Add(roleAssignment); 
siteWeb.Update(); 
} 
あなたがそうのように、RoleDefinitionsコレクションにアクセスすることによりSPRoleDefinitionを取得することができ

...

siteWeb.RoleDefinitions["Contribute"] 
関連する問題