首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用httpcontextaccessor获取.net核心中的控制器和操作名称

在.NET Core中,可以使用HttpContextAccessor来获取控制器和操作名称。HttpContextAccessor是一个服务,它允许我们在应用程序中访问当前HTTP上下文的信息。

要使用HttpContextAccessor获取控制器和操作名称,需要进行以下步骤:

  1. 首先,在Startup.cs文件的ConfigureServices方法中,将HttpContextAccessor注册为服务:
代码语言:txt
复制
services.AddHttpContextAccessor();
  1. 然后,在需要获取控制器和操作名称的地方,通过依赖注入将HttpContextAccessor注入到类中:
代码语言:txt
复制
private readonly IHttpContextAccessor _httpContextAccessor;

public YourClassConstructor(IHttpContextAccessor httpContextAccessor)
{
    _httpContextAccessor = httpContextAccessor;
}
  1. 现在,您可以使用HttpContextAccessor来获取控制器和操作名称:
代码语言:txt
复制
var controllerName = _httpContextAccessor.HttpContext.Request.RouteValues["controller"].ToString();
var actionName = _httpContextAccessor.HttpContext.Request.RouteValues["action"].ToString();

上述代码中,我们通过HttpContext对象的Request属性来获取当前请求的路由值。通过"controller"和"action"键,我们可以获取到控制器和操作名称。

使用HttpContextAccessor获取控制器和操作名称的优势在于可以在应用程序的任何地方访问这些信息,例如在中间件、过滤器、服务等中。这对于记录日志、权限验证、性能监控等方面非常有用。

以下是一些使用HttpContextAccessor获取控制器和操作名称的应用场景:

  1. 记录日志:可以将控制器和操作名称包含在日志中,以便更好地跟踪和分析日志信息。
  2. 权限验证:根据控制器和操作名称,可以进行细粒度的权限验证,确保只有具有相应权限的用户可以访问特定的控制器和操作。
  3. 性能监控:可以根据控制器和操作名称,对应用程序的性能进行监控和分析,以便找出性能瓶颈并进行优化。

腾讯云提供了一系列与云计算相关的产品,其中包括云服务器、云数据库、云存储等。您可以根据具体需求选择适合的产品。以下是一些腾讯云相关产品的介绍链接:

请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【愚公系列】2023年02月 WMS智能仓储系统-003.HttpContext使用

文章目录 前言 一、HttpContext使用 1.注入 2.控制器使用 3.运行 二、SessionCookies封装 1.封装类 2.注入 3.使用 ---- 前言 网页webapi程序交互是通过...HttpContext 对象主要包含以下信息: Request 用于获取用户请求对象,浏览器向Web程序提交表单、访问URL、URL中包含查询字符串、报文请求头等等。...Query 查询字符串集合 QueryString 获取或设置用于在Request.Query中创建查询集合原始查询字符串 Scheme 获取或设置HTTP请求方案 在.NET Core中访问...HttpContext需要进行注入,.NET Core中内置了IHttpContextAccessor接口,HttpContextAccessor默认实现了它简化了访问HttpContext。...一、HttpContext使用 1.注入 services.AddSingleton(); 2.控制器使用 /

41910

(译)创建.NET Core多租户应用程序-租户解析

介绍 本系列博客文章探讨了如何在ASP.NET Core Web应用程序中实现多租户。这里有很多代码段,因此您可以按照自己示例应用程序进行操作。...它是一个单一代码库,根据访问它“租户”不同而做出不同响应,您可以使用几种不同模式,例如 应用程序级别隔离:为每个租户启动一个新网站相关依存关系 多租户应用都拥有自己数据库:租户使用相同网站...,但是拥有自己数据库 多租户应用程序使用多租户数据库:租户使用相同网站相同数据库(需要注意不要将数据暴露给错误租户!)...控制器,演示使用当前HttpContext而不是注入服务。...在本系列下一篇文章中,我们将介绍如何在每个租户基础上配置服务,以便我们可以根据活动租户解析不同实现。

2.5K61
  • asp.net core使用Swashbuckle.AspNetCore(swagger)生成接口文档

    asp.net core中使用Swashbuckle.AspNetCore生成接口文档 Swashbuckle.AspNetCore:swaggerasp.net core实现 项目地址:https...开局一张图,然后开始编,一些基本asp.net core东西就不再赘述,本文只对Swashbuckle.AspNetCore几个使用要点进行描述。 ?...如上图所示,包含功能如下(完整示例见文末) 基础使用,添加controler说明(IDocumentFilter) 汉化操作按钮 添加通用参数(header)-实现IOperationFilter...多版本控制(暂时见demo) 使用JWT简单接口验证(暂时见demo) 构建一个webapi项目并使用swagger 新建asp.net core webapi项目 dotnet new webapi...方法返回值修改了,为了能够正常使用ServiceLocator获取服务 private const string _Project_Name = "AspNetCoreSwaggerDemo";

    2K10

    ASP.NET Core 2.0 MVC项目实战

    定了个计划,下班后慢慢开始学习ASP.NET Core Web APIVue,准备从前端到后端自己写一个小项目玩玩,毕竟代码这个东西,时间长了是会忘。 嗯,有点扯远了。...项目主要使用相关技术如下所示: 项目框架:ASP.NET Core 2.0 MVC ORM:Entity Framework Core(使用Code First) 数据库引擎:MySQL SERVER...Controller.PSU:控制器层,.NET Core类库,用来存放MVC模式中各种控制器文件。...四、总结 接下来我要开始学习ASP.NET Core Web APIVue了,希望可以保持住,能够不间断在博客上分享自己学习经历与见解。...因为也是第一次使用ASP.NET Core MVC进行项目的开发,所以遇到了一些自己没办法解决东西,很感谢博客园里各位大佬以及一些帮助我大佬,正是因为有这么多乐于分享的人在,才能更好推动.NET

    1K30

    ASP.NET Core 2.0 MVC - 获取当前登录用户信息

    .NET Framework平台下面的MVC与.NET Core平台下面的MVC,对于Session使用上存在着一些差异,主要在于如何获取到Session对象。...在传统MVC项目中我们可以直接使用HttpContext.Current.Session获取到session,从而做到对于数据取值、赋值;而在ASP.NET Core MVC中,并没有HttpContext.Current.Session...二、实现思路   首先,在ASP.NET Core 中使用Session,我们需要将Session注入到ASP.NET Core管道(pipeline)中,和我们使用MVC方式相同,在ConfigureServices...这里,我们可以使用nuget添加Microsoft.AspNetCore.Http.Extensions这个程序集,方便我们对于Session进行操作。   ...在当时实际使用后发现,想要获取到登录后存储用户信息,则必须在Controller构造方法中调用CurrentUserConfigure方法,无形中还是增加了许多工作量。

    2K20

    如何实现Http请求报头自动转发

    上篇介绍了HeaderForwarder组件使用方式,现在我们来简单聊聊该组件设计实现原理。...如果我们需要这个过程进行干预,只需要订阅相应事件并将干预操作实现在提供回调中。《ASP.NET Core 3框架揭秘》第8“诊断日志”具有对DiagnosticListener详细介绍。...在实现OnNext中,通过对事件名称(System.Net.Http.HttpRequestOut.Start)比较订阅了HttpClient在发送请求前触发事件,并从提供参数提取出表示待发送请求...对象并将其订阅到HttpClient使用DiagnosticListener对象上(该对象名称为HttpHandlerDiagnosticListener)。...Http请求报头自动转发[应用篇] 如何实现Http请求报头自动转发[设计篇]

    91830

    如何在 asp.net core 3.x startup.cs 文件中获取注入服务

    必定会造成之前某些写法没办法继续使用,趁着端午节假期,在改造模板时,发现没办法通过构造函数注入形式在 Startup 文件中注入某些我需要服务了,因此本篇文章主要介绍如何在 asp.net core...,我实现方法如下,因为我需要记录请求标识 Id 错误日志,所以这里我需要将 ILogger IHttpContextAccessor 注入到 Startup 类中 /// ...方法中使用自定义服务,因为这里已经完成了各种服务注册,之前一样,我们直接在方法签名中包含需要使用服务即可 public void Configure(IApplicationBuilder...(Service Locator)方式来获取实例 当然,这似乎与依赖注入思想相左,对于依赖注入来说,我们将所有需要使用服务定义好,在应用启动前完成注册,之后在使用时由依赖注入容器提供服务实例即可...,通过构建一个 ServiceProvider 之后,手动从容器中获取需要使用服务实例,调整后代码如下 /// /// 添加自定义模型验证失败时返回错误信息 /// </summary

    2.1K30

    在 ASP.NET Core 应用中使用 Cookie 进行身份认证

    使用频次不高,不存在高并发,实现周期短,所以就没有必要为了用某些组件而用,因此这里还是选择沿用 MVC 框架,对于网站身份认证则采用单体应用最常见 Cookie 认证来实现,本篇文章则是如何实现一个基础教程...,赋予管理员角色某些操作过程就是授权 只有认证授权一起配合,才可以完成对于整个系统权限管控 2.1、前期准备 假定现在已经存在了一个 ASP.NET Core MVC 应用,这里以 VS 创建默认项目为例...基于 .NET Core 标准服务使用流程,首先,我们需要在 Startup.ConfigureServices 方法来中通过 AddAuthentication 来定义整个系统所使用一个授权策略,...2.4、获取用户信息 对于添加在 Claim 中信息,我们可以通过指定 ClaimType 方式获取到,在 View Controller 中,我们可以直接通过下面的方式进行获取,这里使用...而当我们需要在一个独立类库中获取存储用户信息时,我们需要进行如下操作 第一步,在 Startup.ConfigureServices 方法中注入 HttpContextAccessor 服务 public

    1.3K40

    【ASP.NET Core 基础知识】--依赖注入(DI)--在ASP.NET Core中使用依赖注入

    控制器中,可以使用HttpContext.RequestServices属性获取IServiceProvider实例,并通过它来获取服务。...这个IHost实例包含了DI容器应用程序服务。 运行Host: 调用IHostRun方法来启动应用程序。 或者,调用IHostRunAsync方法来启动应用程序并允许异步操作。...ASP.NET Core会自动查找与控制器方法名称匹配Razor视图,并使用它来生成HTML响应。 Tip:视图本身不是一个DI对象,但控制器可以使用DI容器解析服务,并将这些服务传递给视图使用。...测试困难:使用服务定位器模式可能会使得单元测试更加困难,因为难以模拟替换通过服务定位器获取服务。...提供清晰文档:如果使用了服务定位器模式,确保文档清晰地说明为什么需要这样做,以及如何使用。 避免滥用:避免在整个代码库中滥用服务定位器模式,这可能导致代码难以维护测试。

    27600

    ES 中文分词器ik

    因为ik目前最高支持es 8.2.3,所以本文基于8.2.3环境编写. 1、集群环境构建 参考Es 集群搭建及相关配置相关参数解读,分别下载Eskibana 8.2.3版本,部署到相应服务器,...环境构建到此结束. 2、ik分词器安装部署 下载地址 注意esik分词器版本匹配.这里下载8.2.3ik分词器 下载完毕之后去es工作目录plugins文件夹下新建ik文件夹,将下载下来ik...压缩包解压缩至ik文件夹下,重启es,集群中所有节点重复此操作. 3、ik 分词器简介 3.1 词库介绍 ik分词器主要有以下词库,位于config目录下 (1)、main.dic 主词库,包含日常生活中常用词..."end_offset" : 7, "type" : "CN_CHAR", "position" : 8 } ] } 根据分词结果,很明显ik_max_word分粒度更加全面...,远程词库要求请参考官方文档 net6 api接口如下: [HttpGet("extdics")] [HttpHead("extdics")] public async

    91720

    .Net Core 2.0一些不大一样地方(一)——基础身份认证

    近日,把之前使用.net core 1.0写网站,使用.net core 2.0改写了一下,发现一些不大一样地方,如果不注意的话,会出现些问题。...一、先说下关于使用Cookie来验证用户登录地方: 在.net core 1.x时代,具体作法如我前面的文章《.Net Core系列教程(四)—— 基础身份认证》所说,这里我就不重新写了 而在.net...Signature 创建签名需要使用编码后headerpayload以及一个秘钥,使用header中指定签名算法进行签名。...,在HTTP头中带上前面申请到token;服务器接受到请求后,验证token合法性,进行下一步操作。...当然,记得要在需要使用验证控制器或者方法上,增加[Authorize]特性,如果不需要验证的话,要增加[AllowAnonymous]。 以上。

    1.2K40

    从EFCore上下文使用到深入剖析DI生命周期最后实现自动属性注入

    StartUp中ConfigureServices方法里调用IServiceCollection扩展方法AddDbContext,把上下文注入到DI容器中,然后在使用地方通过构造函数参数获取实例...这里有个核心点要注意是,从DI容器获取实例时候一定要保证是当前请求是同一个Scope,也就是说,必须要从当前HttpContext中拿到这个IServiceProvider。...第一个是由于控制器构造函数中不能直接使用ControllerBaseHttpContext属性,所以必须要通过注入IHttpContextAccessor对象来获取,貌似问题又回到原点。...于是想有没有办法在控制器被激活时候做一些操作?没考虑引入AOP框架,感觉为了这一个功能引入AOP有点重。...,DefaultControllerActivator中控制器实例是从TypeActivatorCache获取,而自己激活器是从DI获取,所以必须额外把系统所有控制器注册到DI中,封装成如下扩展方法

    1.2K20

    ASP.NET Core管道详解: HttpContext本质论

    ASP.NET Core请求处理管道由一个服务器一组有序排列中间件构成,所有中间件针对请求处理都在通过HttpContext对象表示上下文中进行。...[本文节选自《ASP.NET Core 3框架揭秘》第13章, 更多关于ASP.NET Core文章请点这里] 目录 一、HttpContext 二、服务器适配 三、获取HttpContext上下文...对象接收到通知,进而及时中止正在进行请求处理操作。...上下文来获取与当前请求有关信息,需要完成所有响应操作也总是作用在这个HttpContext对象上,所以不同服务器与这个抽象HttpContext需要进行“适配”。...由于HttpContext上下文是利用服务器提供特性集合创建,所以可以统一使用抽象HttpContext获取真实请求信息,也能驱动服务器完成最终响应工作。

    1.2K30

    使用 Docker 在 Linux 上托管 ASP.NET Core 应用程序

    创建演示项目 开始之前要先准备一个需要 Docker 容器化 ASP.NET Core 应用程序,用于下面的操作演示。...--name参数用来指定容器名称,本例指定容器名称为myapp。...不用,因为它们本身也是可以被容器化,所以我们只要考虑如何把各个相互依赖容器联系到一起,这就涉及到容器编排,而 Docker Compose 正是用来解决这一问题,最终可以实现多容器应用一键部署...Docker Compose 是一个用于定义运行多容器 Docker 工具。其使用YAML文件来配置应用程序服务,最终您只要使用一个命令就可以从配置中创建并启动所有服务。...这里只讲一个配置参数volumes: 我们知道,容器中文件在宿主机上存在形式复杂,修改文件需要先通过如下命令进入容器后操作

    1.9K70

    .NET开发Minimal Web Api交互模块

    今天给大家推荐一个.NET开发REPR(Request-Endpoint-Response)轮子Biwen.QuickApi。...特性 开箱即用Api路由 权限,Bind,validator体验 该库是NET WebApi/Minimal Api补充,性能≈MinimalApi,遥遥领先于MVCWebApi,但是提供了最简单使用体验...CustomApiRequest request) { await Task.CompletedTask; Console.WriteLine($"获取自定义...描述 你可以重写QuickApiHandlerBuilder方法,以便于你自定义OpenApi描述 我们强烈建议您使用Refit风格直接撸接口,以便于您客户端和服务端保持一致接口定义 因为遵循REPR...风格,所以不推荐SwaggerUI或使用SwaggerStudio生成代理代码,除非您QuickApi定义相当规范(如存在自定义绑定,别名绑定等)!

    22530

    ASP.NET Core 中 HttpContext 详解与使用 | Microsoft.AspNetCore.Http 详解

    打开 VS(2017) 新建项目 ASP.NET Core Web 应用程序 Web应用程序(模型视图控制器) 打开 Startup.cs ,在 ConfigureServices 中,加上 1 services.AddSingleton...----  HttpContext 类型属性方法 在 ASP.NET Core 中,系统为每一个请求分配一个线程,HttpContext 针对,就是一个线程。...用于身份认证(ASP.NET中用到),官方不建议在ASP.NT Core中使用。...Features 获取此请求上可用服务器中间件提供HTTP特性集合 Items 获取或设置可用于在该请求范围内共享数据键/值集合 Request 请求 RequestAborted 通知此请求基础连接何时中止...,因此请求操作应取消 RequestServices 获取或设置 IServiceProvider 集合,提供访问请求服务容器 Response 响应 Session 获取或设置用于管理此请求用户会话数据对象

    2.8K20
    领券