热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

nopCommerce_4.4功能实现详解第19章内置身份认证权限启动定义的具体实现

本章将按照自顶向下的开发模式,来解释“nopCommerce”程序是怎样实现对Cookie和Session的支持的0048、LoginModel(1)、LoginM

本章将按照自顶向下的开发模式,来解释“nopCommerce”程序是怎样实现对COOKIE和Session的支持的

0048、LoginModel

(1) 、LoginModel类是登录视图模型类,用于程序与相应浏览器页面的数据交互操作。

(2) 、定义Controllers.CustomerController.Login方法。

(3) 、定义Views/Customer/ Login.cshtml视图。

(4) 、修改Views/Shared/_Layout.cshtml视图。

(5) 、按F5执行程序,查看Views/Customer/ Login.cshtml视图中的COOKIEs。

0049、AuthenticationStartup

(6) 、AuthenticationStartup类是“nopCommerce”程序对.NetCore框架中内置身份认证权限依赖注入和管道中间件方法的自定义和扩展。COOKIE与Session实现依赖于.NetCore框架中内置身份认证权限间件,所以要先在“nopCommerce”程序中实现内置身份认证权限间件。

在“nopCommerce”程序中内置身份认证权限间件,需要与大量的其它类型的实例进行耦合才能实现,所以先实现依赖注入操作所需要的其它类型的定义。

(7) 、定义Nop.Web.Framework.Infrastructure.Extensions.ServiceCollectionExtensions.AddNopAuthentication自定义依赖注入中间件方法。

0050、NopAuthenticationDefaults、NopHttpDefaults、NopCOOKIEDefaults、SessionExtensions

(8)、NopAuthenticationDefaults类,通过该类所定义一些身份认证的默认常量,为身份认证操作提供数据支撑。

(9)、NopHttpDefaults类,该类规定了客户端浏览器访问当前程序所必须遵循的传输协议及其准备的参数实例。

(10)、NopCOOKIEDefaults类,通过该类所定义的COOKIE拼接/构建字符串,来拼接/构建一个指定的COOKIE名称字符串。

(11)、SessionExtensions类,  该类是把指定类型的一个实例及其键(很可能是一个指定的COOKIE名称字符串)键/值对,以“Session”实例的形式持久化到服务器端;或从服务器端获取“Session”实例来获取指定类型的一个实例及其键(很可能是一个指定的COOKIE名称字符串)键/值对。

(12) 、定义Nop.Web.Framework.Infrastructure.Extensions.ApplicationBuilderExtensions.UseNopAuthentication自定义管道中间件方法。

0051、AuthenticationMiddleware

(13)、AuthenticationMiddleware类,该类在.NetCore框架内置身份认证管道中间件基础上,进行了自定义和扩展。

对以上功能更为具体实现和注释见21-06-30_Nop4.4(022_内置身份认证权限启动定义的具体实现完成,构建后无语法错误产生)


推荐阅读
  • 本文介绍了在go语言中利用(*interface{})(nil)传递参数类型的原理及应用。通过分析Martini框架中的injector类型的声明,解释了values映射表的作用以及parent Injector的含义。同时,讨论了该技术在实际开发中的应用场景。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • C#设计模式之八装饰模式(Decorator Pattern)【结构型】
    一、引言今天我们要讲【结构型】设计模式的第三个模式,该模式是【装饰模式】,英文名称:DecoratorPattern。我第一次看到这个名称想到的是另外一个词语“装修”,我就说说我对“装修”的理 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
author-avatar
liqiqinai
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有