.net core应用搭建的分布式邮件系统设计

.net core应用搭建的分布式邮件系统设计

ID:9295343

大小:64.44 KB

页数:22页

时间:2018-04-27

.net core应用搭建的分布式邮件系统设计_第1页
.net core应用搭建的分布式邮件系统设计_第2页
.net core应用搭建的分布式邮件系统设计_第3页
.net core应用搭建的分布式邮件系统设计_第4页
.net core应用搭建的分布式邮件系统设计_第5页
资源描述:

《.net core应用搭建的分布式邮件系统设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、为什么要在公司中首例采用NetCore做开发为什么要在公司中首例采用NetCore做开发,有些netcoreapi不是还不全面么,您都敢尝试?恐怕会有人这样问我,我只能告诉你NetCore现在出2.0版本了,很多Framwork的常用封装都已经有了,况且她主打的是MVC模式,能够高效的开发系统,也有很多Core的Nuget包支持了,已经到达了几乎可以放心大胆使用的地步,退一万不说有些东西不支持那这又如何,可以采用接口的方式从其他地方对接过来也是一种不错的处理方案。为了让C#这门优秀的语言被广泛应用,默默努力着。  目前我写的NetCore方面的文

2、章AspNetCore-MVC实战系列目录  .NetCore上传多文件的几种示例  开源一个跨平台运行的服务插件-TaskCore.MainForm  NETCore-学习笔记  Asp.NetCore1.1版本没了project.json,这样来生成跨平台包  正片环节-分布式邮件系统设计图    分布式邮件系统说明其实由上图可以知晓这里我主要采用了Api+服务的模式,这也是现在互联网公司经常采用的一种搭配默认;利用api接受请求插入待发送邮件队列和入库,然后通过部署多个NetCore跨平台服务(这里服务指的是:控制台应用)来做分布式处理操作

3、,跨平台服务主要操作有:  .邮件发送  .邮件发送状态的通知(如果需要通知子业务,那么需要通知业务方邮件发送的状态)  .通知失败处理(自动往绑定的责任人发送一封邮件)  .填充队列(如果待发邮件队列或者通知队列数据不完整,需要修复队列数据)  Api接口的统一验证入口这里我用最简单的方式,继承Controller封装了一个父级的BaseController,来让各个api的Controller基础统一来做身份验证;来看看重写publicoverridevoidOnActionExecuting(ActionExecutingContextco

4、ntext)的验证代码:    1publicoverridevoidOnActionExecuting(ActionExecutingContextcontext)  2{  3base.OnActionExecuting(context);  4  5varmoResponse=newMoBaseRp();  6try  7{  8  9#region安全性验证  10  11varkey="request";  12if(!context.ActionArguments.ContainsKey(key)){moResponse.Msg="请

5、求方式不正确";return;}  13varrequest=context.ActionArguments[key];  14varbaseRq=requestasMoBaseRq;  15//暂时不验证登录账号密码  16if(string.IsNullOrWhiteSpace(baseRq.UserName)

6、

7、string.IsNullOrWhiteSpace(baseRq.UserPwd)){moResponse.Msg="登录账号或密码不能为空";return;}  17elseif(baseRq.AccId<=0){moRespon

8、se.Msg="发送者Id无效";return;}  18elseif(string.IsNullOrWhiteSpace(baseRq.FuncName)){moResponse.Msg="业务方法名不正确";return;}  19  20//token验证  21varstrToken=PublicClass._Md5($"{baseRq.UserName}{baseRq.AccId}","");  22if(!strToken.Equals(baseRq.Token,StringComparison.OrdinalIgnoreCase))

9、{moResponse.Msg="Token验证失败";return;}  23  24//验证发送者Id  25if(string.IsNullOrWhiteSpace(baseRq.Ip))  26{  27varaccount=_db.EmailAccount.SingleOrDefault(b=>b.Id==baseRq.AccId);  28if(account==null){moResponse.Msg="发送者Id无效。";return;}  29else  30{  31if(account.Status!=(int)EnumHe

10、lper.EmStatus.启用)  32{  33moResponse.Msg="发送者Id已禁用";return;  34}  35

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。