第十二节 初始化权限

本节将讲述nopCommerce_4.20项目是怎样生成数据库中的权限表,并对其进行插入初始化的数据。

  1. 在Nop.Core\Domain\Security文件夹中添加DefaultPermissionRecord.cs、PermissionRecord.cs和PermissionRecordCustomerRoleMapping.cs三个类的定义。如图

第十二节 初始化权限

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2、Nop.Data\Mapping\Security文件夹中添加PermissionRecordCustomerRoleMap.cs和PermissionRecordMap.css两个类的定义。如图

第十二节 初始化权限

3、按F5在数据库被初始化后,发现会在相应的数据库中会出现相应的表PermissionRecord和PermissionRecord_Role_Mapping。

4、在InstallController.cs的public virtual IActionResult Index(InstallModel model)方法中添加以下代码:

//注册并初始化默认权限。

                var permissionProviders = new List<Type> { typeof(StandardPermissionProvider) };

                foreach (var providerType in permissionProviders)

                {

                    var provider = (IPermissionProvider)Activator.CreateInstance(providerType);

                    EngineContext.Current.Resolve<IPermissionService>().InstallPermissions(provider);

                }

5、上述语句中有许多代码没有被定义,因此要添加这些代码所需的定义文件IPermissionProvider.cs、IPermissionService.cs、PermissionService.cs和StandardPermissionProvider.cs。如图

第十二节 初始化权限

6、在Nop.Web.Framework\Infrastructure文件夹中的PermissionRecordCustomerRoleMap.csDependencyRegistrar.cs文件中的public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, NopConfig config)方法中添加下列语句:

builder.RegisterType<PermissionService>().As<IPermissionService>().InstancePerLifetimeScope();

7、按F5在数据库被初始化后,发现会在相应的数据库中会出现相应的表PermissionRecord和PermissionRecord_Role_Mapping,并在其中插入了默认的权限数据和相对应的角色映射数据。

至于更新详细的信息请见我所上传代码“2019-10-15_MyNopCommerce_VS19Core2.2Nop4.20(不删,009_初始化权限)。 (https://download.****.net/download/zhoujian_911/11866268)