- 浏览: 190543 次
- 性别:
- 来自: 广州
文章分类
最新评论
写在前面:
该机制的目的在于验证请求的合法性并对每次请求的数据进行加密,预防重放攻击。
每步请求都要求在header中添加一个固定的头部
key:Authorization
value:HMACSHA256+空格+加密后的验证串
api收到请求后就会获取特定的头部,然后进行拆分,获取参数并分析是否为正确的请求,如果OK,则继续往下进行,如果错误,则提醒非法的访问。
加密串的组成:第一部分加密的AppID,第二部分时间搓,第三部分由AppID和时间搓组成的加密串加密方式可以自己定义
时间搓可用来确定是否为重放攻击。
需要用到的引用
Microsoft.Owin.Security.OAuth
Microsoft.Owin.Security
Microsoft.Owin
Microsoft.AspNet.Identity.EntityFramework
Microsoft.AspNet.Identity.Owin
Microsoft.Owin.Host.SystemWeb (我被它坑了好久)【不安装这个,系统无法识别新的Startup启动类】
下面简单介绍步骤
1、新建一个webapi项目
2、注释掉原有的Global.asax文件中,启动项目
3、新建StartUp启动项,并将Global.asax里面的启动内容,拷贝过来,在程序入口处增加
OwinConfig.Configure(app);
4、App_start文件夹中,新增OwinConfig文件
5、在webapi项目中新增Security文件加,然后把示例代码中的文件按顺序添加进去
6、为了方便演示在LoadApiAccount方法中,我把参数写死了,具体使用时可替换
源码示例地址:http://pan.baidu.com/s/1dFN8eM9
在此要感谢罗总的大力支持!
该机制的目的在于验证请求的合法性并对每次请求的数据进行加密,预防重放攻击。
每步请求都要求在header中添加一个固定的头部
key:Authorization
value:HMACSHA256+空格+加密后的验证串
api收到请求后就会获取特定的头部,然后进行拆分,获取参数并分析是否为正确的请求,如果OK,则继续往下进行,如果错误,则提醒非法的访问。
加密串的组成:第一部分加密的AppID,第二部分时间搓,第三部分由AppID和时间搓组成的加密串加密方式可以自己定义
时间搓可用来确定是否为重放攻击。
需要用到的引用
Microsoft.Owin.Security.OAuth
Microsoft.Owin.Security
Microsoft.Owin
Microsoft.AspNet.Identity.EntityFramework
Microsoft.AspNet.Identity.Owin
Microsoft.Owin.Host.SystemWeb (我被它坑了好久)【不安装这个,系统无法识别新的Startup启动类】
下面简单介绍步骤
1、新建一个webapi项目
2、注释掉原有的Global.asax文件中,启动项目
3、新建StartUp启动项,并将Global.asax里面的启动内容,拷贝过来,在程序入口处增加
OwinConfig.Configure(app);
public class Startup { public void Configuration(IAppBuilder app) { OwinConfig.Configure(app); AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); } }
4、App_start文件夹中,新增OwinConfig文件
public class OwinConfig { public static void Configure(IAppBuilder app) { app.CreatePerOwinContext(ApplicationDbContext.Create); app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create); bool HmacEnabled = false; //从配置文件中获取是否开启验证的配置 bool.TryParse(ConfigurationManager.AppSettings["Authentication:Hmac.Enabled"], out HmacEnabled); if (HmacEnabled) //如果为true,表示开启验证 { var authenticationOptions = new AuthenticationOptions(); authenticationOptions.HmacEnabled = HmacEnabled; //初始化AuthInfo的表记录值 var apiAccountProvider = new ApiAccountProvider(); if (authenticationOptions.HmacEnabled) { //默认请求失效时间0分钟 int HmacSignatureValidityPeriod = 0; //从配置文件中获取失效时间 int.TryParse(ConfigurationManager.AppSettings["Authentication:Hmac.SignatureValidityPeriod"], out HmacSignatureValidityPeriod); //将配置值赋值给authenticationOptions的失效时间参数 authenticationOptions.HmacSignatureValidityPeriod = TimeSpan.FromMinutes(HmacSignatureValidityPeriod); // app.UseHmacAuthentication(new HmacAuthenticationOptions { ApiCredentialsProvider = apiAccountProvider, SignatureValidityPeriod = authenticationOptions.HmacSignatureValidityPeriod }); } } } }
5、在webapi项目中新增Security文件加,然后把示例代码中的文件按顺序添加进去
6、为了方便演示在LoadApiAccount方法中,我把参数写死了,具体使用时可替换
源码示例地址:http://pan.baidu.com/s/1dFN8eM9
在此要感谢罗总的大力支持!
发表评论
-
excel文件转为DataTable
2018-11-02 17:38 1598在人员初始化的时候,通常会用到excel编辑好,导入到数据库中 ... -
DataTable导出excel
2018-11-02 16:36 1153网上有很多关于导出的例子,这里讲一个利用NPOI导出excel ... -
未能加载文件或程序集,System.Net.Http或它的某一个依赖项。系统找不到指定的文件。
2018-10-30 17:21 4798具体的错误描述: 未能加载文件或程序集“System.Net. ... -
EF重新封装查询
2018-10-22 17:49 1062今天搜索批量删除时,无意间翻到这篇文章感觉思路不错mark一下 ... -
EF中批量操作
2018-10-22 15:54 932在正常的使用过程中,如果要批量删除,需要先搜索符合条件的结果集 ... -
MVC学习之七_____上传多张图片
2018-09-19 15:55 1194图片上传控件:WebUploader 后台代码: pu ... -
MVC学习之六_____上传单张图片
2018-09-05 16:00 573模板页代码: @{ Layout = nul ... -
MVC学习之五_____删除记录
2018-08-30 12:08 308前端模板页,沿用list的模板代码即可 后台代码: pu ... -
MVC学习之四_____新增记录
2018-08-30 11:22 328AddInfo模板代码: @{ //Layo ... -
MVC学习之二_____查看详情信息
2018-08-29 11:50 538查看页和编辑页的模板页类似 @model BasicDat ... -
MVC学习之三_____跳转到编辑页提交信息
2018-08-29 11:31 489模板页代码 @model PagedList<App ... -
MVC学习之一_____实现列表及分页
2018-08-29 11:05 1017模板页代码: @model PagedList<Ap ... -
一个点击事件,action执行两次
2018-08-04 17:38 785记一次低级的错误 点击后要跳转到查看详情页面,代码如下: @ ... -
App_Data中数据库文件的连接配置
2018-08-04 17:03 510由于使用了EntityFramework和POCO,所以nam ... -
EntityFramework Reverse POCO Code First Generator反向生成代码
2018-07-26 15:05 1252上一篇转载了依据Code First生成对应数据库的方法 那么 ... -
使用CodeFirst把类生成数据库【转】
2018-07-26 12:30 524推荐以下文章,他比较系统的讲解了由实体类生成数据库的方法 h ... -
将app请求的简单json串转化为字典
2017-11-16 11:18 823通过Newtonsoft的DeserializeObject& ... -
WebAPI启用session功能
2017-11-16 11:04 1770第一步:简单建立两个类,以备修改WebApi的路由方式 第一 ... -
webapi记录请求和返回日志
2017-11-15 17:12 2159需求: 记录每个接口的请求参数及返回参数,方便以后回溯 fi ... -
C# 将图片转化为string用form表单提交,后台接受并存储
2017-11-03 17:04 1669后台处理代码: HttpRequest request = ...
相关推荐
6. **错误处理与日志记录**:为了确保系统的稳定性和安全性,插件还需要有完善的错误处理机制,并记录相关日志,便于排查问题。 7. **安全措施**:插件需遵循支付宝的安全规范,例如使用HTTPS传输敏感数据,防止...
nopCommerce是一款广受欢迎的开源电子商务平台,专为个人学习和商业运营设计。它以其灵活性、可扩展性和安全性而受到开发者的青睐。这个压缩包文件名“nopCommerce_1.70_Source_zh”表明它是nopCommerce的1.70版本,...
9. **API接口**:nopCommerce提供API接口,允许开发者通过编程方式与外部系统交互,如集成ERP、CRM或第三方物流服务。 10. **安装与升级**:安装nopCommerce 1.5中文版通常包括下载压缩包、解压、运行安装向导、...
Nopcommerce的主题加载机制涉及到几个核心类,它们位于`Nop.Web.Framework.Themes`命名空间下。这些类包括`ThemeableRazorViewEngine`、`ThemeableBuildManagerViewEngine`和`...
Nopcommerce是一款开源的、高度可定制的电子商务解决方案,而这款插件则进一步增强了它的用户认证和交互能力。 在了解Nopcommerce WeChat微信授权插件之前,我们首先需要知道Nopcommerce的基本架构。Nopcommerce...
Nopcommerce是国外的一个高质量的开源b2c网站系统,最新版是基于Entity Framework6.0和MVC5.0,使用razor模板引擎,有很强的插件机制,包括支付配送功能都是通过插件来实现的,基于xml的多语言版本,非常灵活的语言...
- **使用场景**:NopCommerce 支持强大的插件机制,允许开发者轻松添加或修改特定功能,如支付网关、配送服务等。 ##### 6. Themes 主题技术 - **简介**:主题技术允许用户定制网站的外观和感觉。 - **使用场景**:...
【标题】"nopCommerce_4.30 中文"指的是nopCommerce电商平台的4.30版本,该版本的源码已经全部被翻译成了中文。这为中国的开发者提供了一个更加友好的环境,便于理解和使用这个开源电子商务平台。 【描述】"1,4.3...
5. 扩展开发:利用插件机制,开发新的功能模块或增强现有功能。 6. 测试调试:确保所有功能正常运行,修复可能出现的bug。 7. 部署上线:将开发好的项目部署到服务器,进行线上测试和调整。 四、关键技术 1. ASP...
nopCommerce是一款开源的电子商务平台,基于.NET Framework构建,旨在提供高度可定制的、灵活的以及安全的网上商店解决方案。在nopCommerce中,插件扮演着关键角色,它们扩展了平台的功能,例如支付处理、物流、营销...
nopcommerce 4.4 中文语言包,本地化,目前最完整的资源包 language_pack.4.4.xml
nopcommerce 4.3 中文语言包,本地化,目前最完整的资源包 language_pack.zh-CN.xml
1. **支付接口集成**:Nopcommerce WeChatPay插件实现了与微信支付API的无缝对接,允许商家在后台配置必要的商户信息,如商户号、支付密钥等,以启用微信支付。 2. **订单处理**:当顾客在Nopcommerce网站上选择...
NopCommerce是一个开源的电子商务平台,专为中小型企业设计,具有高度可定制性和扩展性。3.6_1 版本是该平台的一个特定迭代,可能包含了一系列的更新、优化和修复,旨在提升用户体验和系统稳定性。 在"nopcommerce...
nopCommerce是一款开源电子商务解决方案,主要用于建立在线商店。在nopCommerce 3.1版本用户手册中,首先介绍了nopCommerce的概念和其许可证内容。NopCommerce拥有自己的商标权,并且在文档中明确指出,所有商标、...
【描述】提到,通过学习nopCommerce的源代码,可以了解到如何运用MVC架构来构建可扩展和可维护的Web应用。MVC模式将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个主要部分,有助于保持代码的...
【标题】"nopCommerce_3.10带汉化包" 指的是一个特定版本的nopCommerce电子商务平台,该版本已经集成了中文语言包,方便中国用户进行安装和使用。nopCommerce是一款开源的电子商务解决方案,它允许商家构建功能丰富...
### nopCommerce:开源电子商务解决方案概览 nopCommerce是一款先进的开源电子商务平台,专为构建功能全面、用户友好的在线商店而设计。它不仅提供了强大的后台管理功能,还为前端客户提供了直观且互动的购物体验。...
Nopcommerce数据库建库脚本,还包括一些初始化的数据
2. **ASP.NET MVC框架**:Microsoft开发的一种用于构建Web应用程序的技术,利用模型-视图-控制器(MVC)模式,提供更好的代码组织和测试能力。 3. **多语言支持**:nopCommerce具有强大的多语言功能,允许商家为不同...