Better CMS を使用する場合は、NuGet の BetterCms.Module.Users モジュールを、そのロール プロバイダー、メンバーシップ プロバイダー、およびユーザーを管理するための UI と共に使用します。ユーザー モジュールのセットアップ方法については、Github の BetterCMS wiki ページを参照してください。
それでも Simple Membership Provider で Better CMS を使用したい場合は、以下の手順に従ってください。それが私がやったことであり、私にとってはうまくいきます。
- MVC 4 ソリューションを作成し、インターネット テンプレートを選択します
- アプリケーションを実行してユーザーを作成する
- Better CMS github wiki の「Project Setup」セクションで説明されている手順に従って、BetterCMS をインストールします。
routes.MapRoute(name: "Default" ....
RouteConfig クラスからデフォルト ルートの登録 ( ) を削除することを忘れないでください。RouteConfig クラスに以下のルートを登録します。その後、URL /home/ で MVC ホームページにアクセスできます。
routes.MapRoute("mvc-account-controller", "account/{action}/{id}", new
{
area = string.Empty,
controller = "Account",
action = "Login",
id = UrlParameter.Optional
});
routes.MapRoute("mvc-home-controller", "home/{action}/{id}", new
{
area = string.Empty,
controller = "Home",
action = "Index",
id = UrlParameter.Optional
});
ロール プロバイダーとメンバーシップ プロバイダーを web.config に追加します (解決策はこちらにあります)。
<roleManager enabled="true" defaultProvider="simple">
<providers>
<clear/>
<add name="simple" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
</providers>
</roleManager>
<membership defaultProvider="simple">
<providers>
<clear/>
<add name="simple" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"/>
</providers>
</membership>
ここで説明されているように、LazyInitializer を global.asax に追加します。
- データベース接続は既に初期化されているため、[InitializeSimpleMembership] 属性を AccountController から削除します。また、SMP2.Filters.InitializeSimpleMembershipAttribute クラスも削除できます。
- 管理者ロールを作成し、ユーザーに割り当てます (ASP.NET 構成を使用するか、データベースで直接行うことができます)。たとえば、「Role1」という名前のロールを作成します。
ユーザーの管理者ロールを設定するには、次の 2 つの方法があります (詳細については、Better CMS Github Wiki のトピック「CMS 構成」を参照してください)。
- 作成したロールをフル アクセス ロールとして設定します (cms.config、セキュリティ セクションの fullAccessRoles 属性を に設定
fullAccessRoles="Role1"
) 。
cms.config のセキュリティ セクションにロール マッピングを追加します。
<customRoles>
<add permission="BcmsEditContent" roles="Role1" />
<add permission="BcmsPublishContent" roles="Role1" />
<add permission="BcmsDeleteContent" roles="Role1" />
<add permission="BcmsAdministration" roles="Role1" />
</customRoles>
アプリケーションを実行します。url /account/login に移動し、2 番目のステップで作成した管理者アカウントを使用してログインします。次に、任意の CMS ページ (ルート ページ (/) など) に戻ります。これで、管理者として接続され、Web サイトの編集に CMS サイドバーが使用できるようになりました。