Fork me on GitHub
摘要: 网关的作用之一,就是有统一的数据出入口,基于这个功能,我们可以在网关上配置监控,从而把所有web服务的请求应答基本数据捕获并展显出来。阅读全文
posted @ 2017-12-08 14:05 桂素伟 阅读(202) 评论(0) 编辑
摘要: 一篇,我们创建了OcelotGateway网关项目,DemoAAPI项目,DemoBAPI项目,为了验证用户并分发Token,现在还需要添加AuthenticationAPI项目,也是asp.net core web api项目,整体思路是,当用户首次请求(Request)时web服务,网关会判断本请求有无Token,并是否正确,如果没有或不正确,就会反回401 Unauthorized;如果请求调用登录,正确输入用户名或密码,AuthenticationAPI会验证并分发Token;当客户端带上Token再次访问web服务时,网关就会放过本请求,当请求到达web服务时,web服务要对本Token进行授权验证,如果有访问请求的地址,会成功返回应答,负责会提示没有权验,所以只要具有正确的Token,应答返回都是200 OK,因为Token正确,只是没有权限访问请求的内容。阅读全文
posted @ 2017-12-08 14:01 桂素伟 阅读(321) 评论(3) 编辑
摘要: Ocelot是一个.net core框架下的网关的开源项目,下图是官方给出的基础实现图,即把后台的多个服务统一到网关处,前端应用:桌面端,web端,app端都只用访问网关即可。阅读全文
posted @ 2017-12-08 13:51 桂素伟 阅读(693) 评论(11) 编辑
摘要: 在对业务层进行单元测试时,因为业务层调用到数据处理层,所以要用Moq去模拟DbContext,这个很容易做到,但如果操作DbContext下的DbSet和DbSet下的扩展方法时,就会抛出一个System.NotSupportedException异常。这是因为我们没办法Mock DbSet,并助DbSet是个抽象类,还没有办法实例化。阅读全文
posted @ 2017-11-03 11:24 桂素伟 阅读(187) 评论(1) 编辑
摘要: JWT(json web token)是一种基于json的身份验证机制,流程如下: 通过登录,来获取Token,再在之后每次请求的Header中追加Authorization为Token的凭据,服务端验证通过即可能获取想要访问的资源。关于JWT的技术,可参考网络上文章,这里不作详细说明, 这篇博文,阅读全文
posted @ 2017-09-16 12:49 桂素伟 阅读(1310) 评论(26) 编辑
摘要: 在《asp.net core认证与授权》中讲解了固定和自定义角色授权系统权限,其实我们还可以通过其他方式来授权,比如可以通过角色组,用户名,生日等,但这些主要取决于ClaimTypes,其实我们也可以自定义键值来授权,这些统一叫策略授权,其中更强大的是,我们可以自定义授权Handler来达到灵活授权,下面一一展开。阅读全文
posted @ 2017-09-06 08:07 桂素伟 阅读(1217) 评论(14) 编辑
摘要: 在asp.net core中,微软提供了基于认证(Authentication)和授权(Authorization)的方式,来实现权限管理的,本篇博文,介绍基于固定角色的权限管理和自定义角色权限管理,本文内容,更适合传统行业的BS应用,而非互联网应用。阅读全文
posted @ 2017-09-06 07:56 桂素伟 阅读(2473) 评论(13) 编辑
摘要: 很多时候我们去自定义一些类型,更有些时候我们会把这些自定义类型封装成集合,比如说现在有一个自定义类型User/// <summary> /// 用户 /// </summary> class User { /// <summary> /// 用户ID /// </summary> public int ID { get; set; } /// <summary> /// 用户名 /// </summary> public string UserName { get; set; } /// <summary> /阅读全文
posted @ 2011-04-04 10:14 桂素伟 阅读(1618) 评论(6) 编辑
摘要: 4月24日,很有幸同西亚斯的励志工作室的的同学见面,他们是专门研究开发.net的一个工作室,大家一起学习,一起进步,是一个不错的团队。在这里,我和大家一起分享了关于vs2010的敏捷开发,主要内容从UML架构设计,数据库设计,代码开发,代码测试等方面介绍了vs2010的开发模式。西亚斯是个美丽的地方,不但环境优美,学生们的思想也很活跃,应该是个出人才的地方。阅读全文
posted @ 2010-04-30 10:42 桂素伟 阅读(729) 评论(0) 编辑
摘要: 今天,活动的形式比较特别,活动是在公园里举行,到场有近30位朋友,活动的内容谈及vs2010的新特性,vs2010的敏捷开发,C#4.0等方面的内容。会后,大家抽取微软提供的礼品。因为在公园,还是周末,我们的宣传广告有很多人看,还有很多人驻足观看,有的朋友还能听上半个小时,看来喜欢 IT的人越来越多了。现场交流阅读全文
posted @ 2010-04-29 20:26 桂素伟 阅读(392) 评论(0) 编辑
摘要: 随着WPF的推广,不得不重新拾起WPF来,因为这块的产品越来越多。只能跟着MSDN来学了,所以想是在这里记录下学习的过程和对知识的理解。先从最基本的吧,依赖项属性是WPF中不同的地方,先了解一下它吧。“依赖项属性的用途在于提供一种方法来基于其他输入的值计算属性值”,这是官方的一句话,理解起来有点费劲。属性本身其实很简单,就是用来封装了字段的,本质上是两个访问器,来达到对字段...阅读全文
posted @ 2010-04-25 14:28 桂素伟 阅读(10876) 评论(6) 编辑
摘要: VS提供了一个模版“控制台应用程序”,这种应用程序主要不是用来与用户交互的,或做一些后台程序运行的展示,或用来练习C#语法,如果当做C#语法学习的平台,在这里就说一下在控制台下的输入验证吧。控制台状态下,程序的输入输出是流的方式进行的,也就是光标是向前的(如果不做特殊处理的话),输入的验证,只能等用户输入完后,系统从缓冲区中把数据读出来进行验证(因为在这里没有按键事件)。举...阅读全文
posted @ 2010-04-20 02:35 桂素伟 阅读(545) 评论(1) 编辑
摘要: 最近在做一个课堂练习是被郁闷了一把。现成的事成了想当然的事。案例如下。是一个WinForm程序,在DataGridView绑定控件后,选择一行,进行操作,代码如下:数据绑定代码:SqlDataAdapter da = new SqlDataAdapter("selectid from shuji","server=.;database=tushudb;uid=sa;pwd=sa;"); DataT...阅读全文
posted @ 2010-03-29 10:11 桂素伟 阅读(2497) 评论(1) 编辑
摘要: 在数据库中,经验有两个表关联的情况,也就是一个表中的主键为另一个表的外键,在ADO.NET时,如果向两个表中同时添中数据,我们通常做三步SQL操作,第一步:添加主表数据,第二步:得到主表中的主键,第三步:添加子表数据,在通常状况下,这些都是在事务中。先看一下数据库表结构。一个表为父表(这里为了说明技术,表没有具体意义),名字为FatherTable如下:还有一个子表,名字为SonTable如下:两...阅读全文
posted @ 2010-03-09 17:38 桂素伟 阅读(1420) 评论(1) 编辑
摘要: ado.NET中提供了连接池的功能,多数开发人员很少设置它,因为它是默认的。界面设置如下图:关闭连接池也很简单,在连接字符串如下:Data Source=(local);Initial Catalog=AdventureWorks;Integrated Security=SSPI;Pooling=False;但连接池的本质是什么样的呢?用Reflector,打开System.Data.SqlCli...阅读全文
posted @ 2010-02-25 00:46 桂素伟 阅读(4954) 评论(5) 编辑
摘要: 1月31号,是周末,很荣幸收到邀请参加微软中文技术论坛2010 party,这是我第一次参加论坛的party,因为2009年的那次我不在北京,没有能参加,所以这次就带了更多的好奇。虽然坐车出了点小插曲(比起冯瑞涛同志,我还算幸运,因为他在来的路上把钱包丢了),但还是如期到达微软大厦。我到时已经来了很多论坛的朋友,很多都不认识,因为都是线上论坛交流,但也不乏老朋友,比如MVP葛涵涛,陈广琛等。当到了...阅读全文
posted @ 2010-02-03 21:59 桂素伟 阅读(354) 评论(2) 编辑
摘要: TDD(Test-Driven Development)测试驱动开发,就是以测试用例来带动开发,也就是先做测试用例,然后根据测试用例做开发。TDD的好外使是开发人员可以针对性的做开发,目标就是通过测试用例,当然,TDD更适合做逻辑的程序员,不适合更多的与UI开发相关的程序员。不管是TDD也好,传统的开发也好,肯定要先做设计,设计展开后如果采用普通方法做开发,那就是开始写代码,然后单元测试,集成测试...阅读全文
posted @ 2010-01-18 16:19 桂素伟 阅读(825) 评论(0) 编辑
摘要: 山西.net俱乐部成立于2006年5月,于2006年10月加入微软中国.net俱乐部,同时和微软合作做过多场线下活动,同时也参与了多次微软的线上活动。做俱乐部也有三个多年头了,有很多感概,因为俱乐部的定位从开始的不成熟到后来的成熟化,走过一些弯路。为了做俱乐部朋友少走弯路,所以分享一下山西.net俱乐部的经验。 我觉得做俱乐部先得给俱乐部一个定位,我们山西.net俱乐部是这样定位的:俱乐部是一个技...阅读全文
posted @ 2010-01-12 09:32 桂素伟 阅读(502) 评论(4) 编辑
摘要: Http是一个无状太的协议。为了保存浏览器请求状态,服务端通常用Session来实现。Session为了保存状态,生成一个SessionId在服务端与浏览端传输,以这个唯一的SessionId来识别浏览端在服务端器的身份(在ASP.NET中,SessionId可以通过Cookie和URL两种与浏览端)。ASP.NET中是怎么样来实现的呢?首先,分两种情况来没有Global.asax和有Global...阅读全文
posted @ 2009-12-07 23:09 桂素伟 阅读(2391) 评论(0) 编辑
摘要: 代码分析(关于代码分析详见http://msdn.microsoft.com/zh-cn/library/3z0aeatx(VS.80).aspx),是visual studio开发工具中提供的一种规范代码的工具,系统提供了200多条规则,从命名习惯,安全性,属性使用等方面来对我们编写的代码进行分析,然后以默认警告的形式在“错误列表”窗口中提示我们书写的代码是否符合规范,并...阅读全文
posted @ 2009-11-27 16:00 桂素伟 阅读(2250) 评论(13) 编辑