サイト コレクションに Web パーツとカスタム Web テンプレートを提供するには、カスタム グループを作成する必要があります。私は次の方法でそれを行います:
using (SPSite site = properties.Feature.Parent as SPSite)
{
if (site != null)
using (SPWeb rootWeb = site.RootWeb)
{
try
{
rootWeb.AllowUnsafeUpdates = true;
rootWeb.SiteGroups.Add("Admins", site.Owner, site.Owner, "Admins");
try
{
SPGroup sp_grpAdmins = rootWeb.SiteGroups["Admins"];
SPRoleDefinition sp_rldAdmins =
rootWeb.RoleDefinitions.GetByType(SPRoleType.Administrator);
sp_rldAdmins.Name = "Admin rights";
sp_rldAdmins.Description = "all";
rootWeb.RoleDefinitions.Add(sp_rldAdmins);
SPRoleAssignment sp_rlaAdmins = new SPRoleAssignment(sp_grpAdmins);
sp_rlaAdmins.RoleDefinitionBindings.Add(
rootWeb.RoleDefinitions["Admin rights"]);
rootWeb.RoleAssignments.Add(sp_rlaAdmins);
sp_grpAdmins.Update();
rootWeb.Update();
}
catch (ArgumentException argex)
{
}
}
}
このコードを Web パーツに追加すると (サンプルのデバッグ用 - デバッグするイベント レシーバーを取得できません)、グループが作成されます。機能イベント レシーバーをデバッグする方法、または機能イベント レシーバーでは実行できない制限があるかどうかを知っていますか? どうもありがとうございました。