ASP.NET Core

在.NET Core中用最原生的方式读取Nacos的配置

故事扮演 提交于 2020-10-14 19:27:27
背景 之前老黄写过一篇《ASP.NET Core结合Nacos来完成配置管理和服务发现》简单介绍了如何让.NET Core程序接入Nacos,之前的SDK里面更多的是对Nacos的Open API进行了封装以及对服务注册和发现的封装。 配置这一块当时并没有过多的处理,用起来有时感觉不会特别顺手,所以将它和.NET Core的配置结合起来了,让它用起来更简便。 怎么个简便法呢? 可以说,除了多添加一下provider,其他的操作都是和最原始的一模一样,你想用 IConfiguration 就用 IConfiguration ,想用 IOptions 系列就用 IOptions 系列。 更容易做到无缝迁移! 当然,这个SDK出自老黄的手,难免会有一些坑和bug,这个就请各位多多包涵!! 前提条件 启动Nacos Server 最简单的方式,用docker启动一个单机版的。 docker-compose -f example/standalone-mysql-8.yaml up 创建一个.NET Core项目,并安装相应nuget包 这里将用ASP.NET Core Web Api做示例,同时要安装下面的nuget包 dotnet add package nacos-sdk-csharp-unofficial.Extensions.Configuration --version 0.2

结合jquery的前后端加密解密 适用于WebApi的SQL注入过滤器 Web.config中customErrors异常信息配置 ife2018 零基础学院 day 4 ife2018 零基础...

生来就可爱ヽ(ⅴ<●) 提交于 2020-10-13 06:38:32
在一个正常的项目中,登录注册的密码是密文传输到后台服务端的,也就是说,首先前端js对密码做处理,随后再传递到服务端,服务端解密再加密传出到数据库里面。Dotnet已经提供了RSA算法的加解密类库,我们只需要引用下就好,前端js也有对RSA算法的封装,解决了加解密算法之后,剩下的就是要确保公私钥的传输了,前端使用公钥加密,服务端使用私钥解密,如此才能成功,要不然会出问题。同时,在前端,我们可以首先使用bootstrapValidator来约束密码的类型,因为可能会遇到一些"+"什么的不能加密,建议在前端使用$.trim()去掉空格,再进行密码的加密。同时,如果注册失败,应该清空文本框,重新输入密码. Asp.Net Core中使用RSA加密 一文基于asp.net core mvc结合jquery很好的完成了前后端的加解密,我已经从头到尾跑了一遍,没有问题。完全可以部署在我们的项目中。 适用于WebApi的SQL注入过滤器 开发工具:Visual Studio 2017 C#版本:C#7.1 最有效的防止SQL注入的方式是调用数据库时使用参数化查询。 但是如果是接手一个旧的WebApi项目,不想改繁多的数据库访问层的代码,应该如何做。 我的解决方案是加一个过滤器。 先写过滤方法,上代码 using System; using System.Collections.Generic;

Angular SPA基于Ocelot API网关与IdentityServer4的身份认证与授权(二)

可紊 提交于 2020-10-13 00:56:46
上文 已经介绍了Identity Service的实现过程。今天我们继续,实现一个简单的Weather API和一个基于Ocelot的API网关。 回顾 《 Angular SPA基于Ocelot API网关与IdentityServer4的身份认证与授权(一) 》 Weather API Weather API实现非常简单,直接用Visual Studio 2019 Community Edition自带的ASP.NET Core Web Application模板创建就行了,我们的目的不是为了实现Weather API的业务,我们只需要有一个能让IdentityServer4进行保护的API就行,以便能够完成我们的各种实验。 在原有的(也就是Identity Service所在的)解决方案中,新建一个ASP.NET Core Web Application,应用程序模板选择API,并禁用HTTPS和Docker支持,因为目前不需要,也不要启用任何Authentication机制,因为这部分功能会由Ocelot配合IdentityServer4实现。在完成创建之后,我们的Weather API就做好了。 现在,设置启动端口为5000,启动项目,然后通过curl测试API是否工作正常: curl http://localhost:5000/weatherforecast |

理解C#中的ConfigureAwait

◇◆丶佛笑我妖孽 提交于 2020-10-12 03:45:58
原文: https://devblogs.microsoft.com/dotnet/configureawait-faq/ 作者:Stephen 翻译:xiaoxiaotank 静下心来,你一定会有收获。 七年前(原文发布于2019年).NET的编程语言和框架库添加了 async/await 语法糖。自那以后,它犹如星火燎原一般,不仅遍及整个.NET生态,还被许许多多的其他语言和框架所借鉴。当然,.NET也有很大改进,就拿对使用异步的语言结构上的补充来说,它提供了异步API支持,并对 async/await 的基础架构进行了根本改进(特别是 .NET Core中性能和可分析性的提升)。 然而,大家对 ConfigureAwait 的原理和使用仍然有一些困惑。接下来,我们会从 SynchronizationContext 开始讲起,然后过渡到 ConfigureAwait ,希望这篇文章能够为你解惑。废话少说,进入正文。 什么是SynchronizationContext? System.Threading.SynchronizationContext 的文档是这样说的:“提供在各种同步模型中传播同步上下文的基本功能”,太抽象了。 在99.9%的使用场景中, SynchronizationContext 仅仅被当作一个提供虚(virtual) Post 方法的类

部署Chart应用并使用.net core读取Kubernetes中的configMap

给你一囗甜甜゛ 提交于 2020-10-10 23:58:02
上一篇文章讲了 k8s使用helm打包chart并上传到腾讯云TencentHub ,今天就讲一下使用Helm部署应用并使用configMap代替asp.net core 中的appsettings.json文件。 把Chart上传到TencentHub之后,我们就可以通过腾讯云的容器服务,直接部署Helm应用了。 部署Helm应用 点击新建然后选择TencentHub,私有仓库,就可以看到自己上传的Chart了。填写一下应用名称,拉到最下方点击完成即可创建应用。 注意: 如果你的yaml文件写的不对,如少个空格,变量参数名称写错或者不存在,都无法创建成功。 可以点击新建下方那个查看详情,可以看到Helm应用安装日志,安装失败会提示错误信息,自己跟据错误提示修复自己的错误。 成功安装后点击应用可以查看资源信息和状态 注意: Chart部署成功不代表你的服务已经成功启动了,如果你的服务本身是有问题起不来的话,这里不会有提示,需要自己去查看Pod是否已经正常启动成功。 好了,应用部署完成后,我们来试试如何读取configMap。 读取configMap 上篇文章没有把config.yaml文件的内容放出来,里面内容如下 其中metadata中的name是必选项,namespace不写的话默认是default,labels用于条件过滤筛选。 data就是我们的配置内容,key

体验.NET5 RC1极致性能,你也要“卧槽”!

梦想与她 提交于 2020-10-09 11:25:10
“ 9月14日,.NET5发布了(Release Candidate)RC1版本,是11月正式版本之前两个RC版本中第一个,包含语言新版本C#9和F#5,需要用Visual Studio 2019 (v16.8, Preview 3)才能使用,注意不是Visual Studio 2019,二者可以并存安装。 ” 文:Yiru-Chen 来源:DotNetdaily (文章底部附安装包和激活码) 相对于.NET Core3.x,做出了很多改进: 1 单文件可执行应用程序 2 更小的容器映像 3 更强大的JsonSerializer api 4 BCL nullable reference type annotated 5 新target framework names, 6 对Windows ARM64更好的支持。 其中最被人称道的是.NET5里面GC和JIT性能大幅提升,ARM64重点性能优化带来了更好的吞吐量和更小的二进制文件,对容器技术更好的支持,远远领先于其他平台语言!怀揣着憧憬与好奇,我准备动手实践下,数据说话!动手前,先展望一下。 DotNetdaily .NET5,完成统一 微软2019全球开发者大会上正式宣布的.NET5,其主要目标之一是提供一个单一的、跨平台的.NET 运行时和具有统一运行时行为和开发者体验的框架。在第一次宣布这个项目时,.NET 团队的程序经理

Asp.NetCore3.1 WebApi 使用Jwt 授权认证使用

一笑奈何 提交于 2020-10-09 04:27:26
1:导入NuGet包 Microsoft.AspNetCore.Authentication.JwtBearer 2:配置 jwt相关信息 3:在 startUp中 1 public void ConfigureServices(IServiceCollection services){ 2 #region JWT 认证 3 services 4 .AddAuthentication(JwtBearerDefaults.AuthenticationScheme) 5 .AddJwtBearer(options => { 6 var jsonmodel = AppJsonHelper.InitJsonModel(); 7 options.TokenValidationParameters = new TokenValidationParameters 8 { 9 ValidIssuer = jsonmodel.Issuer, // Configuration["JwtSetting:Issuer"], 10 ValidAudience = jsonmodel.Audience, // Configuration["JwtSetting:Audience"], 11 // IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8

实战解读ASP.NET Core身份认证

淺唱寂寞╮ 提交于 2020-10-07 15:55:16
长话短说:上文我们聊了 ASP.NET Core 基于声明的访问控制到底是什么鬼? 今天我们乘胜追击:聊一聊ASP.NET Core 中的身份验证。 身份验证是确定用户身份的过程。授权是确定用户是否有权访问资源的过程。 1. 万变不离其宗 显而易见,一个常规的身份认证用例包括两部分: ① 对用户进行身份验证 ② 在未经身份验证的用户试图访问受限资源时作出反应 已注册的身份验证处理程序及其配置选项被称为“方案”,方案可用作一种机制,供用户参考相关处理程序的身份验证、挑战和禁止行为。 我们口头上常说的: 基于cookie认证方案,若认证成功,go on,若认证失败则跳转回登录页面; 基于基本身份认证(BA)方案,若认证成功,go on,若认证失败则给浏览器返回 WWW-Authenticate 标头, 浏览器会再次弹出认证窗口。 2. ASP.NET Core认证原理 在 ASP.NET Core 中,身份验证由 IAuthenticationService 负责,身份验证服务会调用已注册的身份验证处理程序来完成与身份验证相关的操作, 整个验证过程由 认证中间件 来串联。 一图以蔽之: 其中有几个关键步骤 添加认证方案 由配置项 AuthenticationSchemeOption 、认证处理程序组成。 基于Cookie的认证方案可在Options项中可指定登录地址,

2020年8月周二补丁日修复120个漏洞和2个零日漏洞

折月煮酒 提交于 2020-10-07 06:24:33
在2020年8月的周二补丁日,微软如期发布了针对120个漏洞的补丁,其中17个是严重漏洞。由于大部分员工都采用了远程办公的方式,IT管理员在计划和安装本次发布的更新时将面临挑战。 在对发布的更新进行简单的介绍之后,我们将提供一些关于远程设备补丁管理计划的建议。 什么是周二补丁日? 周二补丁日是每个月的第二个星期二。在这一天,微软将发布其操作系统和其他相关应用程序的安全和非安全更新。由于微软的更新是定期发布的,因此IT管理员可以提前安排好时间为新的更新做好准备。 为什么周二补丁日很重要? 用于修复严重漏洞的最重要的安全更新和补丁都会在周二补丁日发布。通常零日漏洞也会在周二补丁日期间修复,除非是严重漏洞和被高度利用的漏洞,在这种情况下,会发布紧急安全更新来修复这个特殊的漏洞。 8月周二补丁日的重点内容 发布了以下产品的安全更新: Microsoft Windows Microsoft Edge (EdgeHTML-based) Microsoft Edge (Chromium-based) Microsoft ChakraCore Internet Explorer Microsoft Scripting Engine SQL Server Microsoft JET Database Engine .NET Framework ASP.NET Core Microsoft