202012-04 Docker安装部署Net Core实现过程解析 一、docker安装及设置#安装CentOS已经将Docker软件包放在了Extras软件源中,直接利用即可yuminstalldocker-io-y#查看docker的版本versiondocker-v#开启Docker服务systemctlstartdocker.service#开机启动Docker服务systemctlenabledocker.service#查看Docker服务启动状态systemctlstatusdocker.service#重启Docker服务systemctlrestartdocker.service二、新建NetCore程序1、新建NetCore项目。注意不启动Docker... 继续阅读 >
202012-04 Jenkins自动部署Net Core过程图解 目的:实现把Git测试分支中的代码发布到Linux测试环境1、安装Jenkins。首先需要找一台服务器安装Jenkins,我用的是Linux。启动后直接用IP+端口号访问就可以看到启动动的Jenkisn.Tips:关于Jenkins的配置,为了方便我是用Linux的root用户登录的,具体配请自行更改。#安装java环境(Jenkins需要这个java环境)sudoyuminstalljavajava-version#安装Gitsudoyuminstallgitgit--version#安装Jenkinssudowget-O/et... 继续阅读 >
202012-02 .Net Core官方JWT授权验证的全过程 什么是JWT?JSONWeb令牌(JWT)是一个开放标准(RFC7519),它定义了一种紧凑且自包含的方式,用于在各方之间安全地传输信息作为JSON对象。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对对JWT进行签名。尽管可以对JWT进行加密以提供双方之间的保密性,但我们将重点关注已签名的令牌。签名的令牌可以验证其中包含的声明的完整性,而加密的令牌则将这些声明隐藏... 继续阅读 >
202012-02 如何在Asp.Net Core MVC中处理null值的实现 译文链接:https://www.infoworld.com/article/3434624/how-to-handle-null-values-in-aspnet-core-mvc.html传统的asp.netmvc对应着.netcore中的asp.netcoremvc,可以利用asp.netcoremvc去构建跨平台,可扩展,高性能的web应用和api接口。程序员都有一些洁癖,很多时候我们都想很完美的包装一些错误信息,如一些返回空response的request请求,或者一些action中返回nullvalue的情况,通常这些情况下,asp.netco... 继续阅读 >
202011-22 深入探究ASP.NET Core Startup初始化问题 前言Startup类相信大家都比较熟悉,在我们使用ASP.NETCore开发过程中经常用到的类,我们通常使用它进行IOC服务注册,配置中间件信息等。虽然它不是必须的,但是将这些操作统一在Startup中做处理,会在实际开发中带来许多方便。当我们谈起Startup类的时候你有没有好奇过以下几点为何我们自定义的Startup可以正常工作。我们定义的Startup类中ConfigureServices和Configure只能叫这个名字才能被调用到吗?在使用泛型主机(IHostB... 继续阅读 >
202011-22 ASP.NET Core使用HostingStartup增强启动操作方法详解 概念在ASP.NETCore中我们可以使用一种机制来增强启动时的操作,它就是HostingStartup。如何叫"增强"操作,相信了解过AOP概念的同学应该都非常的熟悉。我们常说AOP使用了关注点分离的方式,增强了对现有逻辑的操作。而我们今天要说的HostingStartup就是为了"增强"启动操作,这种"增强"的操作甚至可以对现有的程序可以做到无改动的操作。例如,外部程序集可通过HostingStartup实现为应用提供配置服务、注册服务或中间件管道操作等。... 继续阅读 >
202011-22 .net core中的Authorization过滤器使用 前言咱们上篇说到,过滤的简单介绍,但是未介绍如何使用,接下来几篇,我来给大家讲讲如何使用,今天第一篇是Authorization。认证过滤器,开发环境介绍 开发工具:VS2019开发环境:.netcore3.11.创建项目 首先创建一个Api的项目,选择.netcore的版本,选择好,点击创建即可2创建一个自定义类publicclassAuthenticationTest:IAuthorizationFilter{publicvoidOnAuthorization(AuthorizationFilterContextcontext)... 继续阅读 >
202011-22 asp.net core 使用 TestServer 来做集成测试的方法 Intro之前我的项目里的集成测试是随机一个端口,每次都真实的启动一个WebServer,之前也有看到过微软文档上TestServer的介绍,当时没仔细看过以为差不多就没用,一直是启动了一个真正的WebServer去跑集成测试的,上次分享Xunit.DependencyInjection改造测试项目的时候,写的烂代码被大师看到了之后,大师建议用TestServer来做集成测试,使用TestServer不会真正的占用端口号,不会出现权限问题,于是扒了扒TestServer... 继续阅读 >
202011-13 在ASP.NET Core5.0中访问HttpContext的方法步骤 ASP.NETCore应用通过IHttpContextAccessor接口及其默认实现HttpContextAccessor访问HttpContext。只有在需要访问服务内的HttpContext时,才有必要使用IHttpContextAccessor。通过RazorPages使用HttpContextRazorPagesPageModel公开HttpContext属性:publicclassAboutModel:PageModel{publicstringMessage{get;set;}publicvoidOnGet(){Message=HttpContext.Request.PathBase;}}通过... 继续阅读 >
202011-13 ASP.NET Core3.1 Ocelot路由的实现 1.路由前一个章节我们已经介绍过Ocelot,相信大家也了解到,Ocelot的主要功能是接收客户端等传入的HTTP请求,并将其转发到下游服务。Ocelot当前仅以另一个http请求的形式支持此功能(将来可能是任何传输机制)。Ocelot将一个请求路由到另一个请求。为了让Ocelot正常工作,您需要在配置中设置一个Route。下面我们就Ocelot基础项目构建简单介绍下路由功能。2.Ocelot基础项目构建(APIGatewayBasicDemo)现在我们根据GitHub贡献者开源... 继续阅读 >
202011-06 详解ASP.NET Core Web Api之JWT刷新Token 前言如题,本节我们进入JWT最后一节内容,JWT本质上就是从身份认证服务器获取访问令牌,继而对于用户后续可访问受保护资源,但是关键问题是:访问令牌的生命周期到底设置成多久呢?见过一些使用JWT的童鞋会将JWT过期时间设置成很长,有的几个小时,有的一天,有的甚至一个月,这么做当然存在问题,如果被恶意获得访问令牌,那么可在整个生命周期中使用访问令牌,也就是说存在冒充用户身份,此时身份认证服务器当然也就是始终信任该... 继续阅读 >
202011-06 .NET Core Web APi大文件分片上传研究实现 前言前两天发表利用FormData进行文件上传,然后有人问要是大文件几个G上传怎么搞,常见的不就是分片再搞下断点续传,动动手差不多也能搞出来,只不过要深入的话,考虑的东西还是很多。由于断点续传之前写个几篇,这里试试利用FormData来进行分片上传。.NETCoreWebAPi文件分片上传这里我们依然是使用FormData来上传,只不过在上传之前对文件进行分片处理,如下HTML代码<divclass="form-horizontal"style="margin-top:80px;">... 继续阅读 >
202011-06 .NET Core如何进行请求转发的实现 前言冒个泡,近日,有关注我公众号的小伙伴私信我,遇到一个问题搞了很久没解决,此问题具有参考意义,这里跟大家分享下,希望对后续可能有需要的你能有所参考和帮助。请求转发问题内网环境跟外网隔离,现在外网的请求都需要一个专用服务器转接到内网处理,用app.UseRewriter转接,从外网服务器转发到内网服务器的时候Header里面的Authorization居然丢失了,重新设置RewriteContext.HttpContexHeader也不行,有没有办法解决?... 继续阅读 >
202011-06 ASP.NET Core使用JWT认证授权的方法 demo地址:https://github.com/william0705/JWTS名词解析认证:识别用户是否合法授权:赋予用户权限(能访问哪些资源)鉴权:鉴定权限是否合法Jwt优势与劣势优势1、无状态token存储身份验证所有信息,服务端不需要保存用户身份验证信息,减少服务端压力,服务端更容易水平扩展,由于无状态,又会导致它最大缺点,很难注销2、支持跨域访问Cookie是不允许垮域访问的,token支持3、跨语言基于标准化的JSONWebToken(... 继续阅读 >
202011-06 .NET Core使用Topshelf方式创建Windows服务的全过程记录 前言Topshelf是一个.NETStandard库,它消除了在.NETFramework和.NETCore中创建Windows服务的那些麻烦。安装Install-PackageTopshelf代码usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingTopshelf;namespaceConsoleApp2222{publicclassLoggingService:ServiceControl{privatevoidLog(stringlogMessage){Console.WriteLine(logMessage);}publicboolStart(HostControlhostContro... 继续阅读 >
202011-04 net core webapi多版本控制与swagger(nswag)配置教程 前言首先希望webapi支持多版本,swagger针对不同的版本可进行交互。多版本控制基于Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer包,swagger可以选择Swashbuckle.AspNetCore和nswag.AspNetCore.由于我们系统使用的是nswag所以继续沿用,当然Swashbuckle.AspNetCore也和不错,有时间再总结。版本控制1.导入相关nuget。Swashbuckle.AspNetCore,nswag.AspNetCore.2.添加api多版本控制服务2.1.首先是让项目支持多版本的服务添加se... 继续阅读 >