自定义token的验证类 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.E…
新增配置文件 { "Logging": { "IncludeScopes": false, "Debug": { "LogLevel": { "Default": "Warning" } }, "Console": { "LogLevel": { "Default": "Warning" } } }, &qu…
简介 本教程采用WHY-WHAT-HOW黄金圈思维模式编写,黄金圈法则强调的是从WHY为什么学,到WHAT学到什么,再到HOW如何学.从模糊到清晰的学习模式.大家的时间都很宝贵,我们做事前先想清楚为什么要做,学完能达到什么样的目标,然后我们再考虑要达到这个目的,通过什么样的方法来实现. 尝试一些事,遭遇失败后从中学习,比什么事都不做更好.-马克.佐克伯 为什么要学? 对于开发人员来说,调试API接口和生成API文档是一件极其头疼的事情.我们在百忙之中,还不得不为前端开发人员编写接口文档,来描述系…
上一篇我们使用IOC容器解决了依赖问题,同时简单配置了WebApi环境,本章我们使用一下Swagger,并通过Jwt完成授权 一.Swagger的使用 1.什么是Swagger 前后端分离项目中,后端人员开发完成后通常会编写API接口文档,说明方法对应的功能.参数等信息,也就是说前后端唯一的联系就是API接口,书写良好规范的API接口能极大的减缓前后端人员之间扯皮的频率.swagger则是能够让后端开发人员更加便捷的书写规范API文档的一款框架. 2.Swagger相关配置 使用NuGet搜索S…
首先415的官方解释是:对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝. 也就是说我所准备的数据格式并不是后台代码使用的数据格式 后台代码如下 using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Threading.Tasks; using Microso…
测试场景: 1. 新建.Net Core Web项目 2. 选择模板: 3. 修改Error页面代码:(去掉母版页并修改页面显示信息) 4. 修改[ASPNETCORE_ENVIRONMENT],并抛出一条异常信息 IE运行结果: 解决方案: 经反复测试发现:上述代码在其他浏览器运行正常,但只有在IE下才会出现500错误并且如果Error页面的内容字节数足够多时也是正常显示:最终发现是因为IE的“Show friendly HTTP error messages”被启用 在去掉“Show fri…
在startup中添加授权相关的管道 using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Exte…
安装IIs对 netcore 的支持 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/aspnet-core-module?tabs=aspnetcore2x https://dotnet.microsoft.com/download/dotnet-core hosting下载地址 https://www.cnblogs.com/a-dou/p/6685582.html 1.安装hosting 2. 添加应用程序…
1. 定义一个服务,包含一个方法 public class TextService { public string Print(string m) { return m; } } 2. 写一个扩展方法用来注入服务 using Haos.Develop.CoreTest.Service; using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using Syst…
命令行的配置 var settings = new Dictionary<string, string>{ { "name","cyao"}, {"} }; var builder = new ConfigurationBuilder() .AddInMemoryCollection(settings)内存中获取appsettings .AddCommandLine(args); var configuration = builder.Buil…