BetterCMS与MVC4简单会员提供商

Sha*_*eKm 2 membership-provider content-management-system asp.net-mvc-4

我在我的MVC4应用程序中设置了BetterCMS.它似乎正在工作,除了我无法弄清楚如何配置它使用MVC4互联网应用程序附带的简单成员资格提供程序.

http://www.devbridge.com/articles/better-cms-for-developers

请帮忙!.谢谢

编辑:我使用Internet模板创建了我的MVC4应用程序,该模板附带简单成员资格提供程序已经配置并正常工作.我想让那些我已经"注册"为BetterCMS用户的成员.

小智 6

如果您想使用Better CMS,请使用NuGet的BetterCms.Module.Users模块及其角色提供程序,成员资格提供程序和用于管理用户的UI.如何设置用户模块,您可以在Github上阅读BetterCMS wiki页面

但是,如果您仍希望将Better CMS与简单会员提供商一起使用,请按照以下步骤操作.这就是我所做的,它对我来说很好.

  1. 创建MVC 4解决方案并选择Internet模板
  2. 运行应用程序并创建用户
  3. 按照以下步骤安装BetterCMS,在Better CMS github wiki中解释,"项目设置"部分.
  4. 不要忘记routes.MapRoute(name: "Default" ....从RouteConfig类中删除默认路由registration().在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
                });
    
    Run Code Online (Sandbox Code Playgroud)
  5. 将角色提供程序和成员资格提供程序添加到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>
    
    Run Code Online (Sandbox Code Playgroud)
  6. 添加LazyInitializer到Global.asax中所说明这里

  7. 从AccountController中删除[InitializeSimpleMembership]属性,因为数据库连接已初始化.此外,还可以删除SMP2.Filters.InitializeSimpleMembershipAttribute类.
  8. 创建管理员角色并为用户分配(可以使用ASP.NET配置或直接在数据库中完成).例如,创建名为"Role1"的角色.
  9. 有两种方法可以为用户设置管理员角色(您可以在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>
      
      Run Code Online (Sandbox Code Playgroud)
  10. 运行应用程序 转到url/account/login并使用admininstrator帐户登录,该帐户是在第2步中创建的.然后返回任何CMS页面,例如,根页(/).在这里,您以管理员身份连接,CMS侧栏可用于网站编辑.