这篇文章介绍的是一个黑魔法. 我们知道,在我们项目开发中,对Response需要定制化的数据结构,比如需要一个字段 Status 用来表示响应的状态码:字段Message 用来表示请求的消息,字段Data表示数据. 简单的讲,就是所有的响应都按照我们想要的数据结构来,统一的响应有助于我们项目的顺利进展,因为这涉及前后端工程师的配合,代码的统一又给了工程师简单.直接的编程思想. 比如,我们的Action可能会这样写: 高亮部分是我们真正的业务代码,像这样的Action会很多,几乎所有Action都…
asp.net core 自定义认证方式--请求头认证 Intro 最近开始真正的实践了一些网关的东西,最近写几篇文章分享一下我的实践以及遇到的问题. 本文主要介绍网关后面的服务如何进行认证. 解决思路 网关可以做一部分的认证和授权,服务内部有时候也会需要用户的信息,这时该怎么办呢,我们使用的是 JWT 认证,有一个 identity server去颁发,验证 token,一种简单方式可以把 token 直接往后传,传递给后面的具体某个服务,后面的服务可以去 identity server 拿到…
asp.net Core 自定义端口 官方文档 aspnet内库源码: https://github.com/aspnet dotnet系统内库源码:https://github.com/dotnet asp.net core 官方文档 自定义端口访问 webHost增加UseUrls. 例:WebHost.UseUrls("http://:5001","http://:5002"); 配置文件 hosting.json.例: 通过查看WebHost源码我们得知,启…
原文:解决asp.net core 日期格式 datetime Json返回 带T的问题 记录一下: Startup中,将 services.AddMvc(); 改为: services.AddMvc().AddJsonOptions(options => { options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; }); 解决办法来自:https://stackoverflow.com/quest…
原文:如何在ASP.NET Core自定义中间件中读取Request.Body和Response.Body的内容? 文章名称: 如何在ASP.NET Core自定义中间件读取Request.Body和Response.Body的内容? 作者: Lamond Lu 地址: https://www.cnblogs.com/lwqlun/p/10954936.html 源代码: https://github.com/lamondlu/webapi-logger 背景 最近在徒手造轮子,编写一个ASP.…
asp.net core 自定义异常处理中间件 Intro 在 asp.net core 中全局异常处理,有时候可能不能满足我们的需要,可能就需要自己自定义一个中间件处理了,最近遇到一个问题,有一些异常,不希望记录错误日志,目前主要是用户请求取消导致的 TaskCanceledException 和 OperationCanceledException 异常.因为我的 ERROR 级别的日志会输出到 Sentry,sentry的异常会自动发邮件提醒,如果是一些没必要的错误,自然不需要记录错误日志…
asp.net core 自定义 Policy 替换 AllowAnonymous 的行为 Intro 最近对我们的服务进行了改造,原本内部服务在内部可以匿名调用,现在增加了限制,通过 identity server 来管理 api 和 client,网关和需要访问api的客户端或api服务相互调用通过 client_credencial 的方式来调用,这样一来我们可以清晰知道哪些 api 服务会被哪些 api/client 所调用,而且安全性来说更好. 为了保持后端服务的代码更好的兼容性,希望…
asp.net core 自定义基于 HttpContext 的 Serilog Enricher Intro 通过 HttpContext 我们可以拿到很多有用的信息,比如 Path/QueryString/RequestHeader 等请求信息, StatusCode/ResponseHeader 等响应信息,借助 HttpContext 我们可以在日志中记录很多有用的信息,于是需要自定义一个基于 HttpContext 的 Enricher 实现代码 public class HttpCo…
原文:ASP.NET Core 如何记录每次响应的Response信息 - sky 胡萝卜星星 - CSDN博客 上一篇文章中我们已经成功的记录了Request部分的信息,现在我们来看下如何记录Response的内容. 相比于Request,Response额外多了个StatusCode,然后内容都是通过Body读取,不过不同于Request.Body的只读,Response.Body是个只写的数据流. 可以看到默认Response.Body数据流数据类型为Microsoft.AspNetCor…
asp.net core 2.0使用JWT认证园子里已经有挺多帖子了,但开发中发现认证未授权情况下返回的401状态码是没有任何信息的,业务中可能有需要返回一串错误的Json信息.在这里我分享一个自定义错误页面内容信息的方法,使用该扩展方法还可以捕获异常,将异常信息也转为json. 1.新建一个Api接口统一返回类ApiResult.cs(可替换成自己的). using System; using System.Collections.Generic; using System.Linq; usi…