コードは、installer.cs ではなく、module.cs ファイルにある必要があります。Install メソッドに次の呼び出しがあることがわかります。
this.InstallBackendPages(initializer);
そこで、次のようにページを作成できます。
Guid groupPageId = Guid.NewGuid();
Guid pageId = Guid.NewGuid();
initializer.Installer
.CreateModuleGroupPage(groupPageId, "EmptyCustomModule1 group page")
.PlaceUnder(SiteInitializer.SitefinityNodeId)
.SetOrdinal(100)
.LocalizeUsing<AvalonNotificationsResources>()
.SetTitle("Avalon")
.SetUrlName("avalon")
.ShowInNavigation()
.AddChildPage(pageId, "Test Page")
.SetOrdinal(1)
.LocalizeUsing<AvalonNotificationsResources>()
.SetTitle("Test Page")
.SetUrlName("test-page")
.AddUserControl("~/UserControls/TestWidget.ascx", "Content")
.AddControl(new System.Web.UI.WebControls.Literal()
{
Text = "<h1 class=\"sfBreadCrumb\">Test Widget</h1>",
Mode = System.Web.UI.WebControls.LiteralMode.PassThrough
})
.ShowInNavigation()
.Done()
.Done();
これは、管理者がモジュールをアクティブにして [インストール] をクリックしたときにのみ Install メソッドが呼び出されるため、ユーザー資格情報を提供しなくても確実に機能します。これは、既に管理者権限で実行されていることを意味します。