惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
博客园 - 【当耐特】
Cyberwarzone
Cyberwarzone
B
Blog
U
Unit 42
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
WordPress大学
WordPress大学
美团技术团队
Hugging Face - Blog
Hugging Face - Blog
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园 - 叶小钗
F
Full Disclosure
Microsoft Azure Blog
Microsoft Azure Blog
Recorded Future
Recorded Future
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
小众软件
小众软件
云风的 BLOG
云风的 BLOG
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Cisco Talos Blog
Cisco Talos Blog
阮一峰的网络日志
阮一峰的网络日志
C
CERT Recently Published Vulnerability Notes
F
Fortinet All Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
C
Cisco Blogs
The Hacker News
The Hacker News
Know Your Adversary
Know Your Adversary
S
Securelist
S
Schneier on Security
P
Privacy International News Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
AWS News Blog
AWS News Blog
J
Java Code Geeks
T
The Exploit Database - CXSecurity.com
The Last Watchdog
The Last Watchdog
S
Secure Thoughts
C
Cybersecurity and Infrastructure Security Agency CISA
H
Heimdal Security Blog
博客园 - Franky
P
Palo Alto Networks Blog
PCI Perspectives
PCI Perspectives
T
Tailwind CSS Blog
IT之家
IT之家
Engineering at Meta
Engineering at Meta
Latest news
Latest news
P
Proofpoint News Feed
量子位
Apple Machine Learning Research
Apple Machine Learning Research
K
Kaspersky official blog

博客园 - 大西瓜3721

SVN分支/合并原理及最佳实践 Web.Config中Runtime节点-DLL版本冲突问题 工作问题 Vue资料 轻松实现WCF服务的构造函数依赖注入 WCF 依赖注入-- Attribute MVC视图分析 C#简单枚举和标志枚举的用法和区别 XDate Admin.NET框架资料 日志管理之log4net+Autofac AutoFac注册的动态实例 Named和Keyed NOP源码分析 六 NOP源码分析五---set的存储 NOP源码分析四 Nop源码分析三 NOP源码分析 二 NOP源码分析 一 NopCommerce的资料 IServiceCollection和IServiceProvider 控制反转——Autofac框架 精选10款C#/.NET开发必备类库 11个免费开源后台管理系统模板 H5连接蓝牙打印机打印小票 自定义控件 - 流式布局:TagFlowLayout MVC开源CMS nginx的安装&一个最简单的配置(windows和Centos) DNS解析
关于NopCommerce3.6版用户登录详解
大西瓜3721 · 2026-03-17 · via 博客园 - 大西瓜3721

一、登录方式

Nop登录方式有两种(且只能选择一种方式登录):一种是用用户名登录,另一种是用户注册邮箱登录,这个在后台可配置:

第一种:用户名登录

 

后台配置路径在商城设置à设置管理à客户设置:使用用户名登录

第二种:如果使用用户名复选框未选中的话就是使用邮箱登陆了。

二、加密方式

Nop 的用户密码加密方式有两种:

 

一种是Encrypt(加密),具体配置可在商城设置à设置管理à客户设置,

另一种是Hash(哈希加密),nop默认是使用哈希加密,

另外就是明文,不启用任何加密方式(如用户外部授权登录后的密码就是随机生成的明文密码,未采用任何加密)

三、用户登录

1.Nop在打开网站的时候会自动插入一个匿名用户,保存在Cookie中,保存时间为1年,并赋予guest权限用于浏览前端页面,

 

代码在Nop.Web.Framework的WebWorkContext.cs文件

2.用户登录验证:nop采用的是谷歌服务的验证码,这个不考虑(天朝用不到,不过没事不要开启这个验证,开启的话不但显示不了验证码,还会导致用户无法登录,除非去数据库删除验证码的有关设置),nop采用的是第三方验证工具FluentValidation作为前端的判空等其它验证,简单验证用户名和密码以及采用哪种登录方式后进入服务验证

1:判定用户是否已存在,是否已删除,是否为启用及是否未注册

2:用户密码加密方式,哈希或者Encrypt加密

 

CustomerLoginResults枚举类在:Libraries\Nop.Core\Domain\Customers\CustomerLoginResults.cs

Nop用了一个枚举类CustomerLoginResults作为输出用户登录的结果,这个本人挺喜欢这个方式,符合多种用户登录的可能结果判断,还可以扩展结果类型。

如果用户验证通过,则把当前用户保存在Cookie中

 

保存用户在cookie

 

该文件目录在:Libraries\Nop.Services\Authentication\FormsAuthenticationService.cs

并赋值_cachedCustomer,配合WebWorkContext上下文在整个项目提供一个CurrentCustomer使用。

关于NopCommerce3.6版的@Html.Widget(“home_page_top”)的说明

以首页幻灯片为例子,首页幻灯片是在插件Nop.Plugin.Widgets.NivoSlider里面实现的

  1. 首页视图位置
  2. 这里其实是加载插件里面的视图内容,具体实现在插件实现
  3. 这个是扩展方法,就是执行Nop.Web 下面的WidgetController控制器里面的子动作WidgetsByZone

这个WidgetByZone就是查找当前已使用的@Html.Widget(“xxx”)并返回相应的控制器名字,方法名和路由值

  1. Widget控制器位置
  2. LoadActiveWidgetsByWidgetZone此方法是加载活动的@Html.Widget(“xxx”)的方法,具体实现大家可在相应实现类找到,注意它的返回对象是IWidgetPlugin接口

  3. 这个方法根据参数名就知道是通过@Html.Widget(“xxx”)里面的xxx作为参数找到实现@Html.Widget(“xxx”)这个的插件,具体实现在方法里面有

这里面是那个IWidgetService的实现类,这里的3方法后面跟着的是模糊查询,所以会根据页面有@Html.Widget(“xxx”)的xxx找到具体实现的插件

  1. 实现类的具体位置
  2. 加载已活动的@Html.Widget(“xxx”)实现方法
  3. 这个方法是定定义在插件里头的,它被定义在IWidgetPlugin接口下,所有有需要实现@Html.Widget(“xxx”)的插件都必须实现该接口

1. 幻灯片插件的位置

2. 实现IWidgetPlugin接口

3. 实现IWidgetPlugin接口下面的GetWidgetZones方法并在IWidgetService接口下的实现类被调用实现