万树IT:Net学习大总结(三).doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
万树IT:Net学习大总结(三)

万树IT:Net学习大总结(三) 安全-结构图 加密,对称加密a=E(key)? , b =D(key)? ?a 是加密后值,E 是加密算法,key 是密钥,b 是解密后值,D 是解密算法,可以看出加密解密的key 是一致的,共享的,所以只要知道key,双方都可以进行加密解密,存在不安全因素,常用的对称加密算法 DES; 数字签名,即对内容进行加密的一个字符串(数字摘要),主要是为了保证内容的完整性及身份认证,常用的数字签名的算法MD5;非对称加密 c=E(key1),d=D(key2)? c 是加密后值,key1 为私钥,E 是加密算法,d 是解密后值,D 是解密算法,key2 为公钥;可以看出加解密所使用的密钥不同,当然也可以私用私钥解密,公钥加密,双方的家解密的私钥不公开,保证一定安全性,常见的非对称加密算法RSA. 认证,常用的技术是使用Token或数字证书,Token 一般可以认为是数字签名;数字证书可以认为是X.509(是证书的标准规范和解析);X.509 使用的是非对称加密,客户端根据证书中私钥对特定内容进行加密,然后发送到服务端,服务端通过公钥进行解密校验认证;微信公众号开发中涉及的微信端和我们服务端的双向认证是Token,但采用的对称加密. 授权,Net 里面比较常用且规范的模式是RBAC,即基于角色控制授权,具体实现可以是 HttpModule + Attribute? ; HttpModule 是对所有(一般不包括静态资源)请求(线程)进行权限实例初始化并进行维持该会话,然后在每个需要授权的方法上标注Attribute及权限ID,Attribute 可以对CodeAccessSecurityAttribute进行扩展实现。 SSO,一般我们有這样的需求,比如有多个子系统,我们在一个系统中登陆成功后,其它系统就会共享此登陆状态而不用再进行登陆,或者 我们有一个系统,但是有多端可以使用,比如PC端,App端,当在一个客户机上登陆成功后,其它端或客户机即刻自动退出避免多端操作,由此我们想到了肯定要把一端登陆成功的状态进行保存并能够在多端共享并能全局访问,拥有此特点的想到了有分布式缓存。 Web后端框架-结构图 从最开始的A 到 现在的MVC3 以上版本,对开发越发灵活和成熟,MVC 是一种模式而非技术实现,此处具体技术不再阐述,可以重点关注下一些比较实用的高级特性,比如 Area , Filter 等。 SignalR? 是实时性框架,即主动通知,客户端和服务端基于Http 建立长连接,当服务端有新的消息时可以主动推送到客户端,常见客户端订阅可以基于JavaScript , C# 实现,Android 端也有叫SignalA但没用过,SignalR 内部通信机制有4种,最好的是WebSocket ,? 客户端可以指定采用何种通信机制,一般是自动切换模式,采用或切换到那种通信模式依据是客户端的环境,理论上是越高配的性能就越好。 领域驱动设计,是架构模式,由此引申出来一套理论和方法,值对象像C#里面的值类型也是不变性的,只是值对象是一个Class实例的对象,此Class 里面有1个或多个属性,为此我们必须覆写它的Equal 和 GetHashCode 保证它的不可变,GetHashCode 是在用到 字典时进行验证的,所以保险起见也要覆写,实体对象 是唯一的,每次我们New 完都是使用的不同的对象实体,避免内存对象不一致的情况,所以需要给定一个唯一标识,即也要对Equal 和 GetHashCode 进行覆写;聚合根是包含了值对象和实体对象,一个聚合根可以理解为一个领域内的模型,一般聚合根可以通过接口进行标注说明,而多个聚合根之间的会话通过领域事件来完成,领域事件的实现一般采用发布-订阅模式,事件通过接口进行标注,发布者可以将订阅者注入到容器中,容器的实现可以使用IOC框架如Unity,Autofac等,发布时根据不同的事件通知给不同的订阅者进行触发,由于事件通知的是另外一个聚合根,而很可能出现跨网络边界进行通知,依据CAP定律,会出现数据不一致的情况,所以使用Event Source 进行事件回放,可以理解为重试机制,Event Source 最好和当前聚合根在同一个事务中,进行事件回放可以另一个进程来完成,而另一个聚合根和Event Source (比如处理完成后修改其状态)最好也是在一个事务中,这样保证数据一致性,当然这里面会存在事件重复发的可能,解决方法增加一个字段标识,当事件发出去后,即可将此标识标记为一个特定状态比如发送中,下次调度就不再取发送中的事件即可;在高并发情况不建议使用事务所以另外一个Event Source 实现方法是 使用队列;我们对操作进行抽象无非就是CRUD,而CUD 我们可以抽象成

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档