温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ASP.NET Core中怎么获取HttpContext

发布时间:2021-06-22 16:10:04 来源:亿速云 阅读:562 作者:Leah 栏目:编程语言

本篇文章为大家展示了ASP.NET Core中怎么获取HttpContext,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

Telerik UI for ASP.NET Core最新版下载

Telerik UI for ASP.NET Core是用于跨平台响应式Web和云开发的最完整的UI工具集,拥有超过60个由Kendo UI支持的ASP.NET核心组件。它的响应式和自适应的HTML5网格,提供从过滤、排序数据到分页和分层数据分组等100多项高级功能。

什么是HttpContext?

它保存有关Http请求的当前信息,包含诸如授权、身份验证、请求、响应、会话、项目、用户、formOptions等信息。每个HTTP请求都会使用当前信息创建HttpContext的新对象。

如何在控制器中访问HttpContext?

控制器公开了ControllerBase.HttpContext属性,因此我们可以直接访问当前Http请求的HttpContext属性,最佳的方法是始终使用默认的HttpContextAccessor通过DI访问HttpContext。

要在服务中使用HttpContext,我们需要执行以下两个步骤:

Step 1:使用.NET Core内置依赖项注入容器注册依赖项,如下所示,在ConfigureServices方法的Startup.cs类中:

public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
//IHttpContextAccessor register
services.AddHttpContextAccessor();
services.AddTransient<IUserService, UserService>();
}

Step 2:接下来,将IHttpContextAccessor注入到创建的服务构造函数中,并如下所示访问HttpContext的属性:

namespace Get_HttpContext_ASP.NET_Core
{
using Microsoft.AspNetCore.Http;

public class UserService : IUserService
{
private readonly IHttpContextAccessor _httpContextAccessor;

public UserService(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}

public string GetLoginUserName()
{
return _httpContextAccessor.HttpContext.User.Identity.Name;
}
}
}

现在,您可以访问服务中HttpContext的所有属性,如以上两个步骤所示。

注意:在.NET中,它被称为HttpContext.Current,但是在ASP.NET Core中已弃用。


上述内容就是ASP.NET Core中怎么获取HttpContext,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI