• 2024-07-02了解 .NET 中的会话管理
    在Web开发领域,跨多个请求维护状态是一个关键方面。HTTP的无状态特性要求开发人员实现持久保存用户数据的机制。这就是会话发挥作用的地方。在本文中,我们将探讨什么是会话、它们在.NET中的工作方式,并提供实际示例来说明它们的用法。什么是会话?会话是服务器端的信息存
  • 2024-07-01ASP.NET Core MVC 从入门到精通之HttpContext
    原文链接:https://www.cnblogs.com/hsiang/p/17368101.html什么是HttpContext?在B/S模式开发的程序中,客户端是浏览器,服务器端Web服务程序,HttpContext是连接客户端和服务器端程序的桥梁,交代了当前请求的环境信息,它封装了请求[Request]和响应[Response]及其他所有信息,示意图如下所
  • 2024-06-22HttpContext扩展类
    需要引入UAParser,IPTools.Core类库a1publicstaticpartialclassHttpContextExtension2{3///<summary>4///是否是ajax请求5///</summary>6///<paramname="request"></param>7///<returns&
  • 2024-06-07264 Exception Handling Middleware
    示例CRUDExample项目新建Middlewares文件夹,下面新建ExceptionHandlingMiddleware.cs(VS中有Middleware模板)usingMicrosoft.AspNetCore.Builder;usingMicrosoft.AspNetCore.Http;usingSerilog;usingSystem.Threading.Tasks;namespaceCRUDExample.Middlewares{ 
  • 2024-06-06HttpContext.Current 和 IHttpContextAccessor 的区别
    "HttpContext.Current"和"IHttpContextAccessor"是两个不同的方式,用来访问当前的HTTP上下文(即与HTTP请求相关的信息,如请求、响应、用户、会话等)。"HttpContext.Current"定义:"HttpContext.Current"是在ASP.NET(旧版.NETFramework)中用于访问当前HTTP上下文的静态属
  • 2024-06-05HttpContext探究之RequestServices
    HttpContext探究之RequestServices在一篇随笔中提到了中间件的构造方式,主要有两种,第一种是直接从容器里面获取,第二种是构造函数的参数从容器里面获取,这两者都离不开容器,也就是serviceprovide,而RequestService则是里面重要的内容RequestServices是什么HttpContext.RequestServi
  • 2024-05-29asp.net core 中hangfire面板的配置及使用
    Hangfire项目实践分享-Ecin-博客园(cnblogs.com) 1、定义校验授权类DyDashboardAuthorizationFilter///<summary>///Hangfire仪表盘配置授权///</summary>publicclassMyDashboardAuthorizationFilter:IDashboardAuthorizationFilter
  • 2024-05-27ServiceScopeFactory的使用方式
    上篇文章谈到在项目中遇到了一个问题,其实就是生命周期的问题,在构造函数的参数中使用了scope生命周期的服务,然后使用ServiceScopeFactory去解决这一问题,但是使用方式好像不太正确上篇文章说遇到了问题,ServiceScopeFactory使用方式好像不太正确,为什么?因为构造这个管道的原计划是针
  • 2024-05-27ocelot自定义认证token
    中间件publicclassCustomOcelotMiddleware:Ocelot.Middleware.OcelotMiddleware{privatereadonlyRequestDelegate_next;publicIConfiguration_configuration;privatereadonlyIAuth_authUtil;privatereadonlySysLogApp_logApp;
  • 2024-05-17Asp-Net-Core开发笔记:使用ActionFilterAttribute实现非侵入式的参数校验
    前言在现代应用开发中,确保API的安全性和可靠性至关重要。面向切面编程(AOP)通过将横切关注点(如验证、日志记录、异常处理)与核心业务逻辑分离,极大地提升了代码的模块化和可维护性。在ASP.NETCore中,利用ActionFilterAttribute可以方便地实现AOP的理念,能够以简洁、高效的方式进行自
  • 2024-05-01在身份认证后建立用户对象ICurrentUser
    app.UseAuthentication();这个中间件添加后,他会为HttpContext.User设置一个ClaimsPrincipal对象。里面有身份认证token里面携带的信息。其访问方式如下HttpContext.User.FindFirstValue("自定义字段")我们可以创建一个服务,方便在应用中使用用户信息。因为在服务中拿不到Htt
  • 2024-03-20dotNet8 全局异常处理
    前言异常的处理在我们应用程序中是至关重要的,在dotNet中有很多异常处理的机制,比如MVC的异常筛选器,管道中间件定义trycatch捕获异常处理亦或者第三方的解决方案Hellang.Middleware.ProblemDetails等。MVC异常筛选器不太灵活,对管道的部分异常捕获不到,后两种方式大家项目应该
  • 2024-02-21c# Attribute
    publicclassLogIPAttribute:TypeFilterAttribute{publicLogIPAttribute():base(typeof(LogIPFilterImpl)){}publicclassLogIPFilterImpl(ILogger<LogIPFilterImpl>logger):IActionFilter{publicvoidOnActionExecuting
  • 2024-02-05C# 微信公众号token 认证笔记
     因公司需要,开通了微信公众号。在开发对接中摸索了2天,写下此记,备忘。 服务器地址(URL):https://www.findtechgroup.net/Handler1.ashx因http80端口已被其他业务占用,只能用https(443)协议,需路由映射服务器的443端口。 IIS中需要添加SSL证书,这个证书在阿里云中免费申请,
  • 2024-01-24单元测试中如何Mock HttpContext
    最近团队有小伙伴问在单元测试中如何MockHttpContext.这是一个好问题,整理了一个实现方案分享给大家。在C#中,尤其是在单元测试场景下,模拟(Mocking)HttpContext是一种常见的做法。这允许我们在没有实际HTTP请求的情况下测试与HTTP上下文相关的代码。为了模拟HttpContext,我们通常
  • 2023-11-28.NET Core的CancellationToken集成使用
    它用于在执行长时间运行的操作时,通过发送取消请求来终止操作。CancellationToken可以与异步操作一起使用,以便在操作执行期间检查是否已请求取消。它提供了一种优雅的方式来处理取消操作,避免了长时间运行的操作无法中断的问题。varhttpContext=Cfg.HttpContext
  • 2023-11-23core中间件全局日志
    参考学习项目zradmin在Configure中配置请求参数缓存//使可以多次多去body内容app.Use((context,next)=>{context.Request.EnableBuffering();returnnext();//请求通道走向下一步});在Configure
  • 2023-11-13C# HTTP 断点续传
    在IIS中,磁盘路径对应的文件是可以直接下载的,而原生的IIS并不需要额外的配置就可以进行断点续传。而在小猪的项目中使用到的文件下载地址不对应磁盘路径的文件地址,而是需要验证用户是否有权限进行下载然后使用使用fileresult提供文件下载。这样整个下载过程都需要自己动手写代码完
  • 2023-11-03.Net Core AOP之IExceptionFilter
    一、简介在.netcore中Filter分为以下六大类:1、AuthorizeAttribute(权限验证)2、IResourceFilter(资源缓存)3、IActionFilter(执行方法前后的记录)4、IResultFilter(结果生成前后扩展)5、IAlwaysRun(响应结果的补充)6、IExceptionFilter(异常处理)二、使用publicclassCustomerE
  • 2023-09-16Net6+Consul的简单使用
    先下载Consul打开cmdconsul.exeagent-dev运行可以在环境变量PATH下添加当前Consul.exe路径全局使用下面试启动ok界面,然后通过localhost:8500看到界面了 然后创建两个api程序,添加如下代码,[HttpGet("start")]publicvoidStart(){
  • 2023-08-23Asp.net mvc 笔记
    捕捉处理全局异常自定义一个Attribute继承默认的HandleErrorAttributenamespaceEmpowerApiService.Filter{publicclassCustomerErrorAttribute:HandleErrorAttribute{privatestaticNLog.Loggerlogger=NLog.LogManager.GetCurrentClassLogger();
  • 2023-08-13ASP.Net MVC文件访问控制
    程序需求:通用的可以控制某个文件夹下所有所有文件的访问,且可后期扩展文件根目录下增加“FileAccessControl.cs”的一般处理程序,代码如下:(文件名可以自定义)///<summary>///用于文件是否可以访问的判断///</summary>publicclassFileAccessControl:IHttpHandler{pu
  • 2023-08-09Abp vNext单点登录
    AbpvNext单点登录使用AbpvNext6.0分析AbpvNext说OpenIddict是支持单点登录的,不过我找不到相关内容OpenIddictmoduleprovidesanintegrationwiththeOpenIddictwhichprovidesadvancedauthenticationfeatureslikesinglesign-on,singlelog-out,andAPIacces
  • 2023-08-07如何自定义书写中间件?
    一、什么是中间件?中间件是一种装配到应用管道以处理请求和响应的软件。是介于request与response处理过程之间的一个插件(一道处理过程),相对比较轻量级,并且在全局上会影响到request对象和response对象的属性。因为改变的是全局,所以需要谨慎实用,用不好会影响到性能。每个组件:1、选
  • 2023-08-02C#获取内外网IP地址
    记录有效获取IP的方法外网IP:publicstaticstringGetIPAddress(){stringip="0.0.0.0";try{WebClientMyWebClient=newWebClient();MyWebClient.Credentials=CredentialCac