.NET Core

Asp.net Core认证和授权:Cookie认证

£可爱£侵袭症+ 提交于 2020-08-13 04:00:17
原文: Asp.net Core认证和授权:Cookie认证 这里我只是记录下自己在学习中的点滴和一些不懂的地方 Cookie一般是用户网站授权,当用户访问需要授权(authorization)的页面,程序会判断是否已经授权,并认证 添加认证代码: 引入命名空间:Microsoft.AspNetCore.Authentication.Cookies; 添加服务 public void ConfigureServices ( IServiceCollection services ) { services . AddMvc (). SetCompatibilityVersion ( CompatibilityVersion . Version_2_2 ); services . AddAuthentication ( CookieAuthenticationDefaults . AuthenticationScheme ) . AddCookie (); } 注册中间件,添加到管道 app.UseAuthentication(); 注意:一定要在app.UseMvc之前添加 我们通过源码可以看到cookie的一些默认配置 // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the

基于.NetCore3.1系列 —— 认证授权方案之授权揭秘 (下篇)

一世执手 提交于 2020-08-13 03:09:25
一、前言 回顾: 基于.NetCore3.1系列 —— 认证授权方案之授权揭秘 (上篇) 在上一篇中,主要讲解了授权在配置方面的源码,从添加授权配置开始,我们引入了需要的授权配置选项,而不同的授权要求构建不同的策略方式,从而实现一种自己满意的授权需求配置要求。 在这一节中,继续上一篇的内容往下深入了解授权内部机制的奥秘以及是如何实现执行授权流程的。 二、说明 在上一篇中,我们通过定义授权策略,查看源码发现,在对授权配置 AuthorizationOptions 之后,授权系统通过DI的方式注册了几个核心的默认实现。 之前我们进行对步骤一的授权有了大概了解,所以下面我们将对步骤二进行的注册对象进行说明。 三、开始 3.1 IAuthorizationService 授权服务接口,用来确定授权是否成功的主要服务,接口的定义为 public interface IAuthorizationService { Task<AuthorizationResult> AuthorizeAsync(ClaimsPrincipal user, object resource, IEnumerable<IAuthorizationRequirement> requirements); Task<AuthorizationResult> AuthorizeAsync(ClaimsPrincipal

.Net Core 配置之long类型 前端精度丢失和时间格式设置

血红的双手。 提交于 2020-08-13 02:34:12
在很多项目中,都采用的前后端分离的方式进行开发,经常遇到后台的long精度的数据到前端丢失不准确,显示效果为long类型(19位)的后几位为000,此时需要对long的字段进行设置,改变默认的返回类型,由long类型改变为string类型。所以需要全局自定义修改long类型的返回类型 using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using System; namespace NetCore3WebApiTemplate.Utility { public class CustomContractResolver : CamelCasePropertyNamesContractResolver { ///// <summary> ///// 实现首字母小写 ///// </summary> ///// <param name="propertyName"></param> ///// <returns></returns> //protected override string ResolvePropertyName(string propertyName) //{ // return propertyName.Substring(0, 1).ToLower() + propertyName.Substring

高并发时,使用Redis应注意的问题 及 Redis缓存帮助类

空扰寡人 提交于 2020-08-13 01:52:04
十年河东,十年河西,莫欺少年穷 学无止境,精益求精 缓存的出现解决了数据库压力的问题,但是当以下情况发生的时候,缓存就不在起到作用了, 缓存穿透、缓存击穿、缓存雪崩 这三种情况。 1. 缓存穿透: 我们的程序中用缓存的时候一般采取的是先去缓存中查询我们想要的缓存数据,如果缓存中不存在我们想要的数据的话,缓存就失去了作用(譬如缓存失效),这时我们就是需要伸手向DB库要数据,如果这种动作过多数据库就崩溃了。 这种情况需要我们去预防了,比如说:我们向缓存获取一个用户信息,但是故意去输入一个缓存中不存在的用户Key,这样就避过了缓存,把压力重新转移到数据上面了。 对于这种问题我们可以采取: 因为缓存查不到用户信息,数据库也查询不到用户信息,我们就把访问的数据进行缓存,这时候就可以避免重复访问,顺利把压力重新转向缓存中,有人会有疑问了,当访问的参数有上万个都是不重复的参数,并且都是可以躲避缓存的怎么办,我们同样把数据存起来设置一个较短过期时间清理缓存。 示例代码如下: [HttpGet] [Route( " RedisGet " )] public IActionResult RedisGet( string key) { if (rd.KeyExists(key)) { /* * 如果缓存中存在,则直接返回结果 */ var result = rd.StringGet(key);

dotnet 入门到放弃 使用 .NET Core 卸载工具

孤街醉人 提交于 2020-08-12 18:43:50
我从 dotnet core 1 的版本到 3.1 的版本,中间安装了超级多的预览版,此时我的硬盘已经空间不够了。干的漂亮的 dotnet 提供了 .NET Core 卸载工具专门用来卸载 .NET Core 的 SDK 和运行时 一款好的语言或框架一定要提供好让你放弃时卸载干净的工具 通过官方 github 下载,或我的 csdn 下载 安装之后可以通过下面命令删除干净除了最新版本的SDK和运行时 dotnet-core-uninstall remove --all-but-latest 如果不是想清理,而是想要放弃了,全部删除,包括 Visual Studio 可能需要的 SDK 请用下面代码 dotnet-core-uninstall remove --all --sdk --force 更多命令请看 Microsoft .NET Core 卸载工具 我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新 如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入 如有不方便在博客评论的问题,可以加我 QQ 2844808902 交流 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可

从壹开始前后端分离【 .NET Core2.0/3.0 +Vue2.0 】框架之十一 || AOP自定义筛选,Redis入门 11.1

流过昼夜 提交于 2020-08-12 18:18:55
本文3.0版本文章 https://mp.weixin.qq.com/s/pjvleNGi_AazZ7COdxQyPQ Redis 部分的内容,和netcore2.0一样,不需要更新。 代码已上传Github+Gitee,文末有地址   书说上文《 从壹开始前后端分离【 .NET Core2.0 Api + Vue 2.0 + AOP + 分布式】框架之十 || AOP面向切面编程浅解析:简单日志记录 + 服务切面缓存 》,昨天咱们说到了AOP面向切面编程,简单的举出了两个栗子,不知道大家有什么想法呢,不知道是否与传统的缓存的使用有做对比了么?   传统的缓存是在Controller中,将获取到的数据手动处理,然后当另一个controller中又使用的时候,还是Get,Set相关操作,当然如果小项目,有两三个缓存还好,如果是特别多的接口调用,面向Service服务层还是很有必要的,不需要额外写多余代码,只需要正常调取Service层的接口就行,AOP结合Autofac注入,会自动的查找,然后返回数据,不继续往下走Repository仓储了。   昨天我发布文章后,有一个网友提出了一个问题,他想的很好,就是如果面向到了Service层,那BaseService中的CURD等基本方法都被注入了,这样会造成太多的代理类,不仅没有必要,甚至还有问题,比如把Update也缓存了

【翻译】.NET 5中的性能改进

瘦欲@ 提交于 2020-08-12 15:41:23
【翻译】.NET 5中的性能改进 在.NET Core之前的版本中,其实已经在博客中介绍了在该版本中发现的重大性能改进。 从.NET Core 2.0到.NET Core 2.1到.NET Core 3.0的每一篇文章,发现 谈论越来越多的东西。 然而有趣的是,每次都想知道下一次是否有足够的意义的改进以保证再发表一篇文章。 .NET 5已经实现了许多性能改进,尽管直到今年秋天才计划发布最终版本,并且到那时很有可能会有更多的改进,但是还要强调一下,现在已提供的改进。 在这篇文章中,重点介绍约250个PR,这些请求为整个.NET 5的性能提升做出了巨大贡献。 安装 Benchmark.NET现在是衡量.NET代码性能的规范工具,可轻松分析代码段的吞吐量和分配。 因此,本文中大部分示例都是使用使用该工具编写的微基准来衡量的。首先创建了一个目录,然后使用dotnet工具对其进行了扩展: mkdir Benchmarks cd Benchmarks dotnet new console 生成的Benchmarks.csproj的内容扩展为如下所示: <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>

C#服务器全面讲解与制作

我与影子孤独终老i 提交于 2020-08-12 11:10:10
C#服务器全面讲解与制作一             环境配置与基础架构 环境配置 基础的服务器架构 这里我会讲解高级的C#服务器的全面制作流程 会对大家有很大的帮助 不过在这个教程中主要是讲解服务器的制作,所以不会讲解客户端的制作,不过会提供相关客户端的代码。 1 环境配置 1.1 VS code环境配置   如果你觉得用Visual Studio来写代码是一件很酷的事情,那么可以直接略过这个部分,到下一个安装Visual Studio 2019的部分   我们在开发之前需要先配置开发环境,由于这里使用的是.Net core来进行开发,所以先在 官网 下载.Net core的SDK,我这里用的是.Net core2.2的开发环境       下载完成后双击安装就行啦,我觉得这个就不用教了吧。。。    那么就进入下一步,到 这里 下载VS code,什么!VS code是哪个???看下图即可      同理下载后安装即可   接着就是对C#的支持了,虽然VS code可以支持很多种语言,但不代表下载之后就有这么高超的能力,我们还需要配置一波      是不是就配置好了呢,对的呢,下来就是很厉害的一部分了,在VS code中对终端的操作需要熟悉一些才行,下来会讲解以下如何新建一个.Net core的项目,会用到很多命令哦   不过不用太过担心,毕竟只是一些很简单的命令   首先

网关项目 ReverseProxy

别说谁变了你拦得住时间么 提交于 2020-08-12 09:06:07
浅析微软的网关项目 -- ReverseProxy 浅析微软的网关项目 ReverseProxy Intro # 最近微软新开了一个项目 ReverseProxy ,也叫做 YARP(A Reverse Proxy) 官方介绍如下: YARP is a reverse proxy toolkit for building fast proxy servers in .NET using the infrastructure from ASP.NET and .NET. The key differentiator for YARP is that it's been designed to be easily customized and tweaked to match the specific needs of each deployment scenario. 这是一个基于 .net (core) 和 asp.net (core) 的用来代理服务器的反向代理组件,YARP的主要区别在于它的设计易于定制和调整,以适应每种部署方案的特定需求。 你可以基于这个项目来构建自己的 API Gateway 项目 YARP 设计 # YARP 主要是基于 endpoint 路由 + asp.net core 中间件来设计实现的 来看一下官方的示例 Startup 配置: Copy

我和ABP vNext 的故事

放肆的年华 提交于 2020-08-12 08:38:49
Abp VNext是Abp的.NET Core 版本,但它不仅仅只是代码重写了。Abp团队在过去多年社区和商业版本的反馈上做了很多的改进。包括性能、底层的框架设计,它融合了更多优雅的设计实践。不管你是自己需要快速上手项目、或者是公司的研发团队没有足够的能力去完整地开发一套稳定且功能全面的快速开发框架;对于.NET 系的开发者和公司来说,Abp目前就是你目前最好的选择。2020年7月15日和腾飞Jesse、计节做了一次《我和ABP vNext的故事》直播,期间我分享时间超时,占用了25分钟,也就是这次直播分享时间超过我们预定的一小时。直播回看地址: https://wxc2160346e3bc5861.h5.xiaoe-tech.com/v1/course/video/v_5f0f9c39e4b04349896c2370?type=2 。 2018年我从腾讯离职开始创业至今,马上就满2年时间了,在这两年时间里我一直在伴随ABP vNext这个项目成长,我的分享主题就是下面这三点,这三点也是大家非常关心的为什么我要选择ABP vNext。 ABP vNext 的前身是aspnetboilerplate, 2017年开始基于.NET Core 进行重构,新的框架名称定义为ABP,目前已经发布3.0.4 版本。在国内ABP ,很多人可能对这个ABP vNext不太了解