赞
踩
080 NopAuthenticationDefaults、CustomerLoggedOutEvent、IModelAttribute、NopResourceDisplayNameAttribute、LoginModel
NopAuthenticationDefaults类,通过该类所定义的常量,为当前程序中的身份认证操作的实现提供相应的数据值。
CustomerLoggedOutEvent类,“EventPublisher.PublishAsync”方法通过调用该类的实例,自动的从静态缓存数据库/分布式缓存数据库中,移除用户实体的一些缓存实例(不管这些缓存实列是否已经达到相应的缓存时间)。
注意:
由于当前程序中并没有为该事件类,定义继承于IConsumer接口的具体实现类,所以当前程序并不能通过用户注销事件来触发,自动的从静态缓存数据库/分布式缓存数据库中,移除与用户相关实例的缓存数据。 IModelAttribute接口,继承于该接口的具体实现类的标记实例,用于把页面上用于验证用户输入数据的错误信息由默认英文,转换为指定的本地化语言(这里特指:简体中文,如果当前程序没有持久化存储指定的本地言语的静态文件,则继续使用默认的英文显示错误信息)。
NopResourceDisplayNameAttribute类,继承于IModelAttribute接口,该类的标记实例,用于把页面上用于验证用户输入数据的错误信息由默认英文,转换为指定的本地化语言(这里特指:简体中文,如果当前程序没有持久化存储指定的本地言语的静态文件,则继续使用默认的英文显示错误信息)。
LoginModel类,该类及其属性成员在程序执行时,用于当前程序和登录页面之间数据的交互和输入验证操作。
081 AuthenticationMiddleware、AuthenticationStartup、AuthorizationStartup
AuthenticationMiddleware类,自定义1个身份认证管道中间件,为当前程序集成(安装)身份认证功能提供支撑。
AuthenticationStartup类,把自定义身份认证中间件,集成(安装)到.NetCore框架的内置管道和依赖注入中间件实例中,为当前程序中添加相应的身份认证功能。
AuthorizationStartup类,把自定义授权证中间件,集成(安装)到.NetCore框架的内置管道和依赖注入中间件实例中,为当前程序中添加相应的授权功能。
082 IAuthenticationService、CookieAuthenticationService、ICustomerModelFactory、CustomerModelFactory、CustomerController
IAuthenticationService接口,继承于该接口的具体实现类,通过默认身份认证方式(也被称为:Cookie身份认证方式),定义了登录/注销操作的具体实现。
CookieAuthenticationService类,继承于IAuthenticationService接口,该类为通过默认身份认证方式(也被称为:Cookie身份认证方式) ,定义了登录/注销操作的具体实现。
ICustomerModelFactory接口,继承于该接口的具体实现类,用来为一些与用户相关的模型类,设置具有默认的数据值的1个实例,即在与用户相关的页面中,显示经过管理员或用户设置过的:输入控件中设置默认数据、页面中的默认控件和主题样式。
CustomerModelFactory类,继承于ICustomerModelFactory接口,该类用来为一些与用户相关的模型类,设置具有默认的数据值的1个实例,即在与用户相关的页面中,显示经过管理员或用户设置过的:输入控件中设置默认数据、页面中的默认控件和主题样式。
注意:
对控件和主题样式进行自定义设置是“nopCommerce”身为模板类程序的需求。
CustomerController类,该类用来把与用户相关的数据,通过指定页面在客户端浏览器中进行显示,或把用户在指定页面输入的数据信息提交到服务端的服务器中。
1、重构Nop.Web.Framework.Infrastructure.DependencyRegistrar.Register方法,去除services.AddScoped<IAuthenticationService, CookieAuthenticationService>();语句前的注释。
2、重构Nop.Web.Controllers.DependencyRegistrar.Register方法,去除services.AddScoped<Factories.ICustomerModelFactory, Factories.CustomerModelFactory>();语句前的注释。
3、重构Nop.Services.Customers.CustomerRegistrationService.SignInCustomerAsync方法。
4、重构Nop.Core.IworkContext接口和Nop.Web.Framework.WebWorkContext类。
<1>、重构Nop.Web.Framework.WebWorkContex. GetCurrentCustomerAsync方法。
<2>、去除Nop.Core.IworkContext接口和Nop.Web.Framework.WebWorkContext类中,SetCurrentCustomerAsync方法前的所有注释。
5、去除Nop.Web.Framework.Infrastructure.Extensions.ApplicationBuilderExtensions.UseNopAuthentication方法前的所有注释。
6、去除Nop.Web.Framework.Infrastructure.Extensions. ServiceCollectionExtensions.AddNopAuthentication方法中的大部分注释。
7、在Nop.Web.Areas.Admin.Controllers.HomeController.Index方法上定义[Authorize]标记实例。
注意:
如果用户通过本地身份认证方式(也被称为:Cookie身份认证方式),实现成功登录操作,且把登录数据持久化到客户端浏览器的Cookies文件中时,如果在限定时间内直接请求授权页面,那么客户端浏览器会把Cookies文件中的Cookie数据信息传回服务端,服务端就可以通过Cookie中的信息确认用户信息了,实现了在限定时间内不用重新执行登录操作,从而直接访问授权页面的操作。
8、按F5,执行程序点击“后台首页”,将自动跳转到“登录”页面,输入用户名和密码,自动跳转到“首页”后,再次点击“后台首页”,将会自动跳转到“后台首页”授权页面;在“登录”页面中如果没有选择“记住我”复选框,在关闭浏览器后,再按F5,执行程序点击“后台首页”,则将前面的操作重新执行一边;如选择“记住我”复选框,击“后台首页”,将不需要再执行登录操作,会直接打开“后台首页”授权页面。
对以上功能更为具体实现和注释见22-01-28-022_Nop_4.40.4(本地身份认证方式登录实现)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。