.NET Core

Asp.Net Core获取请求上下文HttpContext

倖福魔咒の 提交于 2020-11-16 00:14:07
注:特别说明当前版本对应.Net Core2.1意义上框架 一、注入HttpContextAccessor ASP.NET Core中提供了一个 IHttpContextAccessor接口,HttpContextAccessor 默认实现了它简化了访问HttpContext。 它必须在程序启动时在IServicesCollection中注册,这样在程序中就能获取到HttpContextAccessor,并用来访问HttpContext。 services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>(); 二、获取HttpContextAccessor 下面来实际做一个操作,获取 HttpContextAccessor。 新建一个ASP.NET Core Web 应用程序,选择Web 应用程序。 身份验证勾选为不进行身份验证。 然后在HomeController 加入如下代码: public class HomeController : Controller { private IHttpContextAccessor _accessor; public HomeController(IHttpContextAccessor accessor) { _accessor = accessor; } public

浅析asp .net core 中间件

孤者浪人 提交于 2020-11-14 06:44:19
https://www.cnblogs.com/aoximin/p/13576479.html 梦里小探花 前言 对中间件的一个概况,在《重新整理.net core 计1400篇》系列后面会深入。 正文 什么是中间件呢? 其实中间件这个概念来源于分布式,当然这是一个狭隘的概念了,现在中间件概念就非常广泛了。 官网给出了这样一张图,这张图认为从请求到响应过程中间都是中间件,包括我们认为的路由。 看一段node代码: var http = require ( "http" ); http.createServer( function (req,res) { res.writeHead( 200 ,{ "Content-type" : "text/blain" }); res. write ( "Hello NodeJs" ); res. end (); }).listen( 8888 ); 没有学过node 也是ok的,从字面意思就是创建了一个http服务,然后端口是8888。 createServer 可以传入一个方法,中间有两个参数,一个参数是req,另一个参数就是res。 其实就是这么回事,我们写的就是这个这个方法里面的代码,至于,你想拿到req的什么参数,或者给res写入什么信息,这些都是中间件的范畴。 那么问题来了,问什么叫做中间件呢?从语文的层面上理解,那就是分开的

C#基础提升系列——C#任务同步

▼魔方 西西 提交于 2020-11-13 05:29:51
C#任务同步 如果需要共享数据,就必须使用同步技术,确保一次只有一个线程访问和改变共享状态。如果不注意同步,就会出现争用条件和死锁。 不同步导致的线程问题 如果两个或多个线程访问相同的对象,并且对共享状态的访问没有同步,就会出现争用条件。为了解决这类问题,可以使用 lock 语句,对共享对象进行锁定,除了进行锁定之外,还可以将共享对象设置为线程安全的对象。 注意:只有引用类型才能使用 lock 进行锁定。 锁定并不是越多越好,过多的锁定会造成死锁,在死锁中,至少有两个线程被挂起,并等待对象解除锁定。由于两个线程都在等待对方,就出现了死锁,线程将无限等待下去。 lock语句和线程安全 C#为多个线程的同步提供了自己的关键字: lock 语句。 使用一个简单的示例来说明 lock 的使用,首先定义两个简单的类来模拟线程计算,这两个类不包含任何的锁操作: class SharedState { public int State { get ; set ; } } class Job { private SharedState _sharedState ; public Job ( SharedState sharedState ) { this . _sharedState = sharedState ; } //该方法不是最终解决方案,存在漏洞,请不要直接应用到实际代码中 public

.NET Core 跨平台物联网开发:连接阿里云IOT(一)

对着背影说爱祢 提交于 2020-11-13 01:41:13
系列教程目录 (一) 连接阿里云IOT (二) 设置委托事件 (三) 上报属性 (四) SDK文档 属性、方法、委托、类 http://pan.whuanle.cn/index.php?dir=uploads/阿里云IOT/AliIOTXFclient-dll类库&response 下载三个库,头部引入 即可使用 using AliIOTXFClient; 示例下载地址 http://pan.whuanle.cn/index.php?dir=uploads/阿里云IOT/demo示例 本章使用示例 AliIOTXF.One 二,阿里云 IOT 创建产品设备 打开地址 https://iot.console.aliyun.com/product 创建一个产品 节点类型选择设备、非网关,因为是直接对接有网络能力的设备。透传需要写 JS 解析脚本,Alink Json 使用方便、不易出错,也更便于理解。ID² 提供了双向身份认证能力,但是收费。 创建设备 创建成功后记得 “ 一键复制 ” ,然后存放到记事本等保存。(保不保存没事,可以到里面复制) 附上阿里云创建产品的文档 https://help.aliyun.com/document_detail/73705.html?spm=a2c4g.11174283.6.553.3a8b1668QRyRs7 创建后的设备 三,创建项目

跟我一起学.NetCore之EF Core 实战入门,一看就会

谁说我不能喝 提交于 2020-11-12 21:32:52
前言 还记得当初学习数据库操作时,用ADO.NET一步一步地进行数据操作及查询,对于查询到的数据还得对其进行解析,然后封装返回给应用层;遇到这种重复而繁琐的工作,总有一些大神或团队对其进行封装,从而出现了很多ORM框架,让小伙伴把更多精力放在业务处理上,同时更多的面向程序对象开发,对工作效率的提升有很大的帮助。 目前关于C#出现了很多ORM框架,比较流行的大概有FreeSql (国内)、SqlSugar (国内)、Dapper (国外)、EF/EF Core (国外)、linq2db (国外)等, 当然也有一些小伙伴对其进行性能比较,各有优势吧。从我个人及周围的小伙伴使用来看,EF/EF Core和Dapper使用率相对比较高。这里就先说说EF Core,后续逮住机会再和小伙伴一起分享其他; 正文 随着.NetCore的迅速推进,EF Core也紧跟其步伐。目前长期支持版本是EF Core3.1,而下一个 稳定版本 EF Core5.0将计划随.Net5一起发布,预计应该会在这个月(2020年11月),可见微软对EF Core是非常重视的; 对于之前用过EF的小伙伴,应该都知道,EF有三种开发模式:CodeFirst、ModelFirst、DbFirst,这三种根据业务需求及个人偏好用的相对比较多的是DbFirst和CodeFirst;现在EF

跟我一起学.NetCore之EF Core 实战入门,一看就会

﹥>﹥吖頭↗ 提交于 2020-11-12 13:58:23
前言 还记得当初学习数据库操作时,用ADO.NET一步一步地进行数据操作及查询,对于查询到的数据还得对其进行解析,然后封装返回给应用层;遇到这种重复而繁琐的工作,总有一些大神或团队对其进行封装,从而出现了很多ORM框架,让小伙伴把更多精力放在业务处理上,同时更多的面向程序对象开发,对工作效率的提升有很大的帮助。 目前关于C#出现了很多ORM框架,比较流行的大概有FreeSql (国内)、SqlSugar (国内)、Dapper (国外)、EF/EF Core (国外)、linq2db (国外)等, 当然也有一些小伙伴对其进行性能比较,各有优势吧。从我个人及周围的小伙伴使用来看,EF/EF Core和Dapper使用率相对比较高。这里就先说说EF Core,后续逮住机会再和小伙伴一起分享其他; 正文 随着.NetCore的迅速推进,EF Core也紧跟其步伐。目前长期支持版本是EF Core3.1,而下一个稳定版本EF Core5.0将计划随.Net5一起发布,预计应该会在这个月(2020年11月),可见微软对EF Core是非常重视的; 对于之前用过EF的小伙伴,应该都知道,EF有三种开发模式:CodeFirst、ModelFirst、DbFirst,这三种根据业务需求及个人偏好用的相对比较多的是DbFirst和CodeFirst;现在EF

.net core 认证与授权(二)

六眼飞鱼酱① 提交于 2020-11-09 17:27:30
前言 这篇紧接着一来写的,在第一篇中介绍了认证与授权,同时提出了这套机制其实就是模拟现实中的认证与授权。 同样这篇介绍在这套机制下,用户信息管理机制?这里就会问了,上一篇中认证和授权不是都ok了吗,怎么会有一个管理机制呢?当然并不一定要使用下面这套机制,但是给了我们很大的启发。 在上一结中我们颁发证书是这样的: public IActionResult Authenticate() { var SchoolClaims = new List<Claim>() { new Claim(ClaimTypes.Name,"Jack"), new Claim(ClaimTypes.Email,"Jack@fmail.com") }; var LicensClaims = new List<Claim>() { new Claim(ClaimTypes.Name,"Jack.li"), new Claim(ClaimTypes.Email,"Jack@fmail.com"), new Claim("begin","2000.10.1") }; var SchoolIdentity = new ClaimsIdentity(SchoolClaims,"Student Identity"); var CarManagerIdentity = new ClaimsIdentity

一款基于.NET Core的认证授权解决方案-葫芦藤1.0开源啦

左心房为你撑大大i 提交于 2020-11-09 17:11:52
背景 18年公司准备在技术上进行转型,而公司技术团队是互相独立的,新技术的推动阻力很大。我们需要找到一个切入点。公司的项目很多,而各个系统之间又不互通,导致每套系统都有一套登录体系,给员工和客户都带来极大的不便。那么从登录切入进去无疑最合适,对于各个团队的技术改造成本也不大。所以我们团队第一个项目就是搭建一套统一登录认证授权系统,那么葫芦藤项目应运而生。 技术方案 后端框架:.NET Core3.1(后期会推出 .NET 5版本) 前端框架:React 数据库:mysql(可根据实际情况,自由切换) 中间件:redis 详细功能 认证授权服务 基于IdentityServer4实现的协议,支持网站、本地应用、移动端、web服务等应用的认证授权逻辑。 单点登录登出 支持各种类型应用上的单点登录登出。开箱即用的基础用户管理模块,包括:注册、登录、手机验证码、忘记密码等。为了安全考虑,集成了腾讯图形验证码。 第三方登录(微信、钉钉) 完善的第三方登录支持。支持首次登录时绑定已存在用户或注册新用户后,自动绑定。 如何快速使用 1.下载代码 clone代码到本地。根目录结构如下: 其中,backend存放的是后端代码,frontend存放的是前端代码。 进入backend目录,使用Visual Studio打开解决方案。目录结构如下: 2.生成数据库 首先在Fulu.Passport

BCVP,想真正为社区做努力的开发者们

做~自己de王妃 提交于 2020-11-08 12:54:24
基于Net/Core,快速搭建 API & SPA 及微服务应用组织 BASE NETCORE (VUE) PROJECT TEAM 每一个.NET开发者都可以通过自己的开源项目(最好可以配套简单发表些文章)在这里进行分享,BCVP开发者组织的意义 就是激发和挖掘更多的作品,可能偏基础,但是都会有价值 。目的就是希望:每个人能将从社区学到的知识,进行自己消化和总结,浓缩成一个个独立的项目,接着投入到社区,最后让更多的初学者去了解、去学习、去思想碰撞,从而达到学习来源于社区,最后反哺于社区的良好循环目的, 我们都是学生,也都是下一批初学者的老师 ,这才应该是一个社区正向推动的方法。 地址:https://github.com/BaseCoreVueProject 可以在Home仓库里,查看具体的流程说明。 初衷 ------------------------------------------------------- 1 “为什么开启这个项目?” 也许很多人不理解,甚至可能会立刻反驳:现在.NET已经有很多的社区了,有必要再来一个么?已经有了NCC了,为什么还要来一个BCVP? 我这里想说下我创建这个组织的目的。 我更喜欢用组织来称呼它, 这不是一个或十个人的,而且整个DotNet群体的,我们都是一员 ,任何人都可以来,每一个成员不用向任何人汇报或负责

面试 .NET 开发​,为什么也要考算法?​

限于喜欢 提交于 2020-11-07 13:04:09
最近有不少人面试,我发现很多候选人,聊起架构、框架侃侃而谈,但一写代码,就暴露真实水平。 说白了,还是基本功不够扎实。 在我看来,所有基本功中,最核心的一定是 数据结构与算法 。也因此,所有大厂面试,都必考算法题。分享我自己学算法的一些感悟吧。 1、算法不是纯粹拼智商的,而是一种技能,是可以通过科学合理的方式训练出来的能力。 2、学算法,刷题蛮干是不行的,需要遵循科学的方法。算法训练是个系统工程,得循序渐进着来,过于急功近利,反而会因做不出题而产生挫败感,带来反作用。 那会儿,我几乎把市面上所有算法教程都撸了一遍。虽说有所收获,但我发现这些资料还是更偏理论,举例也大多脱离真实的软件开发。看的时候各种明白,合上书就忘得精光。 真正让我觉得很受启发的,就是小争哥的 《数据结构与算法之美》 专栏,这门课我之前也推荐过,是我认为市面上最适用于工程师的算法课,常年稳居极客时间订阅量 TOP 1,现在订阅超过 90000 了。 拼团+口令「study2020」 立省 ¥45 原价 ¥129, 仅限今日 新人专享 ¥19.9 小争哥是前 Google 工程师,不仅实战经验丰富,而且特别会教,是个不可多得的老师。专栏现已全部更新完毕——原计划 45 篇,完结时足足写了 72 篇。我已经刷了两遍,每次看都还有新收获。 整个专栏涵盖 100+ 真实项目场景案例,王争还手绘了不少详解图(共 300 多张