第十二节 初始化权限
本节将讲述nopCommerce_4.20项目是怎样生成数据库中的权限表,并对其进行插入初始化的数据。
- 在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)”。