写在前面 是这样的,我们现在接口使用了Ocelot做网关,Ocelot里面集成了基于IdentityServer4开发的授权中心用于对Api资源的保护.问题来了,我们的Api用了SwaggerUI做接口的自文档,那就蛋疼了,你接入了IdentityServer4的Api,用SwaggerUI调试.调用接口的话,妥妥的401,未授权啊.那有小伙伴就会说了,你SwaggerUI的Api不经过网关不就ok了?诶,好办法.但是: 我不想改变Url规则啊,我是/api开头的Url都是经过网关的,如果不经过…
Asp.Net Core SwaggerUI 接入 简单了解 swagger的目的简单来说就是,不用为每个接口手动写接口文档,因为它是根据接口自动生成的,接口更改时文档也同步更新,减少了手动更新的麻烦和遗漏.同时也提供了接口的调试等功能,你不用打开postman等接口测试软件来测试接口:如果有写备注的话,接口.入参和输出都有详细的备注说明,调用接口的人也能更加直观的读懂接口.沟通效率和工作效率也会大大提升. Swagger接入的步骤: 注册Swagger生成器:services.AddSwagg…
一.整体情况 现代应用程序看起来更像这个: 最常见的相互作用: 浏览器与Web应用程序的通信 Browser -> Web App Web应用程序与Web API通信 基于浏览器的应用程序与Web API 本机应用程序与Web API进行沟通 基于服务器的应用程序与Web API Web API与Web API通信 通常,每个层(前端.中间层和后端)必须保护资源并实现身份验证或授权——通常针对同一个用户存储区. 将这些基本安全功能外包给安全令牌服务可以防止在这些应用程序和端点上复制该功能. 应用…
Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.是一款RESTFUL接口的文档在线自动生成+功能测试软件.主要目的是构建标准的.稳定的.可重用的.交互式的API以及简单方便的功能测试.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步.Swagger 让部署管理和使用功能强大的API从未如此简单. 作用:     1. 根据基于规范的标准设计和建模API  …
IdentityServer4是ASP.NET Core 2的OpenID Connect和OAuth 2.0框架.它可以在您的应用程序中提供以下功能: 它使你的应用程序具有如下特点: 认证即服务 适用于所有应用程序(web, native, mobile, services)的集中登录逻辑和工作流程.IdentityServer是OpenID Connect的官方认证实现. 单点登录/注销 多个类型的应用程序在一个点进行登录和注销操作. API 访问控制 为各种类型的客户端颁发API的访问令牌…
Swagger不用多说,可以自动生成Web Api的接口文档和客户端调用代码,方便开发人员进行测试.通常我们只需要几行代码就可以实现这个功能: ... builder.Services.AddSwaggerGen(); ... app.UseSwagger(); app.UseSwaggerUI(); ... 可如果使用Identity Server 4等认证服务对Web Api进行保护后,使用上面代码生成的Web Api文档就无法工作了,在进行测试时会提示401错误. 本文介绍如何使Swagg…
一.前言 接触到动态WebApi(Dynamic Web API)这个词的已有几年,是从ABP框架里面接触到的,当时便对ABP的这个技术很好奇,后面分析了一波,也尝试过从ABP剥离一个出来作为独立组件来使用,可是后来因与ABP依赖太多而放弃.十几天前朋友 熊猫 将这部分代码(我和他在搞事情)成功的从 ABP 中剥离出来并做了一个简单Demo扔给我,经过这么久(实在是太懒^_^)终于经过一些修改.添加功能.封装,现在已经能作为一个独立组件使用,项目开源在Github(https://github.…
我们先创建一个 WebAPI 项目,看看官方给的模板到底有哪些东西 官方给出的模板: [Route("api/[controller]")] [ApiController] public class ValuesController : ControllerBase { // GET api/values [HttpGet] public ActionResult<IEnumerable<string>> Get() { return new string[]…
引用作者原话:Asp.Net的WebApi中使用Swagger作为说明和测试的页面是非常不错的,比起WebApiTestClient来至少在界面上的很大的提升.但是使用Swagger时如果只是一般的控制器直接放到Controller下就可以了,而如果因不同的业务需求而需要分类或者有同名的类名时时则没办法很好的处理. 因为业务需求需要创建域,但是Swagger 并未将域添加到接口.所以需要加上以下操作才行. 安装Swagger 方法:  为了大家多看微软官方文档.就直接引用Swagger安装及使用…
Package 添加并配置Swagger中间件 将Swagger生成器添加到方法中的服务集合中Startup.ConfigureServices: public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "WoorldCup Api&…
辅助工具 日志追踪包 : Serilog.AspNetCore 源码查看工具 : ILSpy 项目环境 ###: ASP.NetCore 3.1 IdentityServer4 4.0.0+ 主题内容 测试登录方式 : password 错误内容: connect/token 登陆出错 但百度/google网上的示例没有找到正确的调用方式,无奈只能自己动手,丰衣足食... 首先,先按照之前版本进行传参 POST请求 url: connect/token 参数传递通过 form-data 调用结果…
1.前言 为什么我们要隐藏部分接口? 因为我们在用swagger代替接口的时候,难免有些接口会直观的暴露出来,比如我们结合Consul一起使用的时候,会将健康检查接口以及报警通知接口暴露出来,这些接口有时候会出于方便考虑,没有进行加密,这个时候我们就需要把接口隐藏起来,只有内部的开发者知道. 为什么要分组? 通常当我们写前后端分离的项目的时候,难免会遇到编写很多接口供前端页面进行调用,当接口达到几百个的时候就需要区分哪些是框架接口,哪些是业务接口,这时候给swaggerUI的接口分组是个不错的选…
源码下载 一.添加服务端的api 1.添加NUGet包 IdentityServer4 点击下载,重新生成 2.添加Startup配置 打开Startup文件 public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } // This method gets ca…
开始之前,先介绍下swagger常用方法. services.AddSwaggerGen    //添加swagger中间件 c.SwaggerDoc  //配置swagger文档,也就是右上角的下拉框内容 c.IncludeXmlComments  //引用程序集xml,用于加载出 备注信息等如图 c.AddSecurityDefinition  //添加授权验证  c.DocInclusionPredicate    //核心方法,指定分组被加载时 回调进入,也就是swagger右上角下拉框…
在Startup中 services.AddSwaggerGen(options => { options.SwaggerDoc("v1", new Info { Title = "IMS API", Version = "v1" }); options.SwaggerDoc("v2", new Info { Title = "IMS API V2", Version = "v2"…
以前 .NET Framework WebApi 记录接口访问日志,一般是通过Filter的方式进行拦截,通过重写ActionFilterAttribute的OnActionExecuting实现拦截记录Request内容,通过重写OnActionExecuted实现拦截记录Response内容,具体实现代码就不贴了.这篇简单介绍.Net Core WebApi 下通过中间件的拦截方式记录接口访问日志,关键部分是通过读取获取 Request.Body 时需要开启 Request.EnableRe…
IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习之保护API. 使用IdentityServer4 来实现使用客户端凭据保护ASP.NET Core Web API 访问. IdentityServer4 GitHub: https://github.com/IdentityServer/IdentityServer4 IdentityServer 框架支持以下功能: 身份验证服务所有应用程序(Web,本机,移动,服务)的集中登录…
前面的文章使用Asp.net core 5.0以及IdentityServer4搭建了一个基础的验证服务器,并实现了基于客户端证书的Oauth2.0授权流程,以及通过access token访问被保护资源,本文将继续完善IdentityServer实现与Identity组件的集成,可使用Identity的用户来完成授权. 集成Asp.net core Identity与元包(MetaPackage) Asp.net core Identity数据持久化 Asp.net core Identity…
在现代Web应用程序中,通常会使用Web, WebApp, NativeApp等多种呈现方式,而后端也由以前的Razor渲染HTML,转变为Stateless的RESTFulAPI,因此,我们需要一种标准的,通用的,无状态的,与语言无关的认证方式,也就是本文要介绍的JwtBearer认证. 目录 Bearer认证 JWT(JSON WEB TOKEN) 头部(Header) 载荷(Payload) 签名(Signature) 示例 模拟Token 注册JwtBearer认证 添加受保护资源 运行…
源码下载 这里根据<ASP.NET Core分布式项目-1.IdentityServer4登录中心>的代码来继续更新oauth密码模式,这里的密码模式比上次的客户端模式更安全 在WebApiIdentityServer服务端的config里添加用户 public class config { //IdentityServer配置——用户 //IdentityServer用户-这里通过提供一个简单的C#类完成, //当然你可以从任何数据存储加载用户. //我们提供了ASP.NET Identit…
Application Insignhts是微软开发的一套监控程序.他可以对线上的应用程序进行全方位的监控,比如监控每秒的请求数,失败的请求,追踪异常,对每个请求进行监控,从http的耗时,到SQL查询的耗时,完完整整的被记录下来.当对程序进行优化跟排错时非常好使.它原来是visualstudio online的一个服务,现在合并进了Azure,作为Azure Monitor的一个组件.虽然合并进了Azure,但是Application Insignhts还是免费的. 什么是Applicatio…
Redis可以用来存储session或直接存储键值对 首先要有asp.net core的项目,可以是webapi 或者MVC项目,还有有本地的Redis或者在远程服务器上,具体的安装就不讲述了 以下是具体配置过程: 1.安装 "Microsoft.Extensions.Caching.Redis.Core": "1.0.3"(版本根据自己的好项目的需求自行选择,本次以1.0.3为例展示) 2.配置startup.cs public void ConfigureSer…
一.运行环境 1.腾讯云与主机一台 2.操作系统是centos7 3.安装.net core sdk 4.安装node及其pm2(安装过程) rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm yum update yum install dotnet-sdk- 4.验证.net core sdk是否安装成功 输入dotnet --version ,如果输出相应版本号则说明sdk安装成…
一.Asp.Net Core  WebAPI 1.目前版本是v1.1 2.默认路由处理和Asp.Net WebAPI有些 区别了,现在使用的是控制器路由[Route("api/Menu")]和请求方式路由[HttpGet].[HttpGet("{id}")]结合的 方式.直接在控制器和Action上使用方法注释. 3.从项目结构依赖上看 Asp.Net Core MVC项目其实已经包含了WebAPI 二.使用Visual Studio 2017创建Asp.Net C…
2019/10/24,docker19.03.4, .netcore 3.0,CentOS7.6 摘要:asp.net core 3.0 网站项目容器化部署,使用docker-compose编排Nginx容器.MySQL容器.web容器 案例代码 依赖结构介绍 整个网站项目取名samplems,一共需要三个容器(按依赖顺序): 1.MySQL容器,取名为samplems.mysql,来自mysql(官方)镜像 2.web容器,取名为samplems.web,来自samplemsweb(自己bui…
一.前言 开局先唠嗑一下,许久未曾更新博客,一直在调整自己的状态,去年是我的本命年,或许是应验了本命年的多灾多难,过得十分不顺,不论是生活上还是工作上.还好当我度过了所谓的本命年后,许多事情都在慢慢变好,我将会开始恢复更新博客,争取恢复到以前的速度上(因为工作比较忙,所以这个过程可能需要一段时间). 二.关于属性注入 说到属性注入,我们就不得不提一下 DI(Dependency Injection),即依赖注入,用过 ASP.NET Core 的同学相信对这个词不会陌生.ASP.NET Core…
简介 本来不想写这篇博文,但在网上找到的文章博客都没有完整配置信息,所以这里记录下. 不了解IdentityServer4的可以看看我之前写的入门博文 Swagger 官方演示地址 源码地址 配置IdentityServer4服务端 首先创建一个新的ASP.NET Core项目. 这里选择空白项,新建空白项目 等待创建完成后,右键单击项目中的依赖项选择管理NuGet程序包,搜索IdentityServer4并安装: 等待安装完成后,下载官方提供的UI文件,并拖放到项目中.下载地址:https:/…
开发WebApi时通常需要为调用我们Api的客户端提供说明文档.Swagger便是为此而存在的,能够提供在线调用.调试的功能和API文档界面. 环境介绍:Asp.Net Core WebApi + Swagger. 一.加入Swagger组件 Swashbuckle.AspNetCore 中分为3个组件. Package Description Swashbuckle.AspNetCore.Swagger Exposes SwaggerDocument objects as a JSON API…
前言 IdentityServer4(以下简称 Id4) 是 Asp.Net Core 中一个非常流行的 OpenId Connect 和 OAuth 2.0 框架,可以轻松集成到 Asp.Net Core 应用中,并且与 Asp.Net Core Identity 也可以轻松集成.博客园也有大佬发布了很多关于 Id4 的相关文章.比如晓晨Master的系列入门教程:IdentityServer4 中文文档与实战,我也是看他的教程学习入门的,教程基于 .Net Core 2.x,但是影响不大.…
集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionless+Apollo的微服务开发框架 Github源代码地址 https://github.com/PeyShine/Demo.MicroServer Apollo配置中心 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理场景…