一、平台简介

AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。

AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC、ORM、SOA、分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体、数据模型设计生成工具、代码生成工具,用于帮助中小软件开发商快速成长。

AgileEAS.NET平台充分把握目前软件行业快速发展的新趋势,基于敏捷并行开发、快速适应市场这样淳朴的软件工程实践,采用业界广泛使用的Microsoft .Net构件(组件)开发技术实践了这种开发思想,帮助软件企业实现“敏捷变化、快速适合”的目标,从而帮助软件企业在激烈的市场竞争中赢得先机并获得更高的回报。

二、账号加密、验证算法的替换

AgileEAS.NET SOA 中间件平台一直使用内置的密码加密算法,随着很多使用者提出,为了系统的安全需要,希望能提供一策略,用自己的加密算法算法替换AgileEAS.NET SOA 中间件平台内置的密码加密算法。

为了实现这种需求,我们定义了密码提供者接口IPasswordProvider:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace EAS.Explorer
{/// <summary>/// 用户密码提供者接口。/// </summary>public interface IPasswordProvider{/// <summary>/// 加密指定的密码。/// </summary>/// <param name="password">要加密的密码。</param>///<returns>加载后的密码。</returns>byte[] Encrypt(string password);/// <summary>/// 验证给定的密码是否和指定的密钥匹配。/// </summary>/// <param name="password">要验证的密码。</param>/// <param name="key">要验证的密钥。密钥的长度为64个字节。</param>/// <returns>如果可以通过指定的密钥生成和key相匹配的密钥,则返回true;否则返回false。</returns>bool Verify(string password, byte[] key);}
}

IPasswordProvider接口之中定义一个两个方法,Encrypt方法用于生成密码对应的加算后的密码,Verify方法用于对明文密码和加密后的密码进行比对。

三、实现和配置

下面我就以某一个朋友的实现为例,他想把密码加密算法换成md5,咱们来看看具体的做法。

首先要建一个类库项目,并且引用EAS.Explorer、EAS.MicroKernel、EAS.Explorer程序集,建立一个类并实现IPasswordProvider接口,项目代码结构如下:

MD5Password代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using EAS.Explorer;
using System.Security.Cryptography;
using System.Text;
using System.IO;
using System.Text;namespace My.Passwords
{public class MD5Password : IPasswordProvider{#region IPasswordProvider 成员public byte[] Encrypt(string password){byte[] result = Encoding.Default.GetBytes(password.Trim());MD5 md5 = new MD5CryptoServiceProvider();byte[] output = md5.ComputeHash(result);byte[] buffer = new byte[64];Buffer.BlockCopy(output, 0, buffer, 0, 16);return buffer;}public bool Verify(string password, byte[] key){byte[] result = Encoding.Default.GetBytes(password.Trim());MD5 md5 = new MD5CryptoServiceProvider();byte[] output = md5.ComputeHash(result);byte[] buffer = new byte[64];Buffer.BlockCopy(output, 0, buffer, 0, 16);return EAS.Security.Bytes.Equals(buffer, key);}#endregion}
}

编译代码得到My.Passwords.dll,然后修改相关的配置文件,如EAS.SOA.Server.exe.config、Web.Config,加入如下配置:

<!--密码算法--><object name="PasswordProvider" assembly="My.Passwords" type="My.Passwords.MD5Password" LifestyleType="Singleton" />

结束配置。

四、例子代码下载

本文涉及的领域模型设计器代码插件例子,源代码已经一并放在了AgileEAS.NET SOA 中间件的最新版之中,请大请通过AgileEAS.NET SOA 中间件平台官方网站下载,或者通过以下方式下载:

直接下载:AgileEAS.NET SOA 5.2 下载,http://112.74.66.105/downloads/eas/agileeas.net.5.rar。

SVN更新:https://112.74.66.105/svn/eas/5.0,登录用户:eas,密码eas.

AgileEAS.NET SOA 中间件平台管理员:Administrator,登录密码sa

直接下载的压缩包可能会有一定的时间差,即有可能不一定是最新版本,建议大家都通过SVN下载最新版本。

五、联系我们

为了完善、改进和推广AgileEAS.NET而成立了敏捷软件工程实验室,是一家研究、推广和发展新技术,并致力于提供具有自主知识产权的业务基础平台软件,以及基于业务基础平台了开发的管理软件的专业软件提供商。主要业务是为客户提供软件企业研发管理解决方案、企业管理软件开发,以及相关的技术支持,管理及技术咨询与培训业务。

AgileEAS.NET平台自2004年秋呱呱落地一来,我就一直在逐步完善和改进,也被应用于保险、医疗、电子商务、房地产、铁路、教育等多个应用,但一直都是以我个人在推广,2010年因为我辞职休息,我就想到把AgileEAS.NET推向市场,让更多的人使用。

技术团队成员都是合作多年的老朋友,因为这个平台是免费的,我们的营运开支主要靠为客户提供咨询服务所得,我们都是因为程序员的那种理想与信念坚持,在此我感谢一起奋斗的朋友和一直支持我们工作的客户、朋友。

团队网站:http://www.agilelab.cn,

AgileEAS.NET网站:http://www.smarteas.net

官方博客:http://eastjade.cnblogs.com

QQ:47920381

AgileEAS.NET QQ群:

113723486(AgileEAS SOA 平台)/上限2000人

199463175(AgileEAS SOA 交流)/上限2000人

116773358(AgileEAS.NET SOA 平台)/上限2000人

邮件:james@agilelab.cn,mail.james@qq.com,

电话:18629261335。

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan

重写AgileEAS.NET SOA 中间件平台账号密码的加密算法相关推荐

  1. AgileEAS.NET SOA 中间件平台.Net Socket通信框架-完整应用例子-在线聊天室系统-代码解析...

    一.AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台.Net Socket通信框架-介绍一文之中我们对AgileEAS.NET S ...

  2. AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(四):开源的Silverlight运行容器的编译、配置...

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  3. AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(二):配置WinClient分布式运行环境...

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  4. AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(一):下载平台并基于直连环境运行...

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  5. AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(三):配置ActiveXForm运行环境

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  6. AgileEAS.NET SOA 中间件平台.Net Socket通信框架-简单例子-实现简单的服务端客户端消息应答...

    一.AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架介绍一文之中我们对AgileEAS.NET SOA ...

  7. AgileEAS.NET SOA 中间件Web运行容器管理功能已全部开源,欢迎大家下载、使用、反馈...

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  8. AgileEAS.NET SOA 中间件2013第四季度发布部分功能开源预告

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  9. 关于实现平台账号密码登录后,再进行微信授权认证步骤的实现方法

    1.前端通过账号密码验证码请求后端 2.后端验证账号密码验证码成功后,(缓存对应的用户信息到redis,状态为未认证),并生成一个微信授权登录的url sWecatAuth=true qrCode=& ...

最新文章

  1. 软件测试Web数据分析工具HttpWatch安装
  2. 深入浅出ES6(一):ES6是什么
  3. SI 和 DI 寄存器的区别
  4. 牛客 - Gaming with Mia(dp)
  5. Asp.Net Core 中IdentityServer4 授权流程及刷新Token
  6. java 连接池连接mysql数据库需要哪些jar包_DBCP-基于Java8导入DBCP连接池所需JAR包并编写DBCPUtils工具类...
  7. linux查看有几个终端命令,如何知道你在 Linux 里最常使用的几个命令?
  8. linux内核网络基础,linux网络内核基础.doc
  9. 基于ASP.NET AJAX技术开发在线RSS阅读器(下篇)
  10. Java和C的关系及发展历程
  11. java实现word转pdf文件下载
  12. 自己搭建Nas(群晖 or TrueNas)
  13. oracle函数整理---first_value函数
  14. ”左行右立“折寿探秘
  15. linux不能删除文件命令,无法删除文件的解决办法(rm命令的使用)
  16. 关于GMac和FLOPs讨论
  17. 决策树算法--CART分类树算法
  18. Java并发编程-Executor框架之Callable和Future接口
  19. MySQLWorkBench怎么设置主键自增长
  20. 2020-10-08 吴恩达-C4 卷积神经网络-w2 CNN实例探究(课后编程1-Keras tutorial - the Happy House-笑脸识别)

热门文章

  1. MAC Android Studio SDK 无法更新问题
  2. 反汇编学习笔记2 函数的本质
  3. Spring框架—基础介绍
  4. 剑指Offer——不用加减乘除做加法
  5. 《学习之道》第六章关注过程,亦培养习惯
  6. Chrome 静默打印及其它启动参数
  7. MySQL学习笔记(三)
  8. Android常用权限
  9. 反向传播算法 Backpropagation Algorithm
  10. 关于生sql中的空值