How to Get HttpContext in ASP.NET Core

In this article, we will discuss what HttpContext is and how to use it in a controller, plus how to register and use it in service.


This content originally appeared on Telerik Blogs and was authored by Jeetendra Gund

In this article, we will discuss what HttpContext is and how to use it in a controller, plus how to register and use it in service.

Today we are going to learn about HttpContext in .NET Core. This article covers the following topics:

  • What is HttpContext?
  • How to access HttpContext in controller?
  • How to access HttpContext in service?
  • Conclusion

What is HttpContext?

It holds the current information about the Http request. It contains the information like authorization, authentication, request, response, session, items, users, formOptions, etc. Every HTTP request creates a new object of HttpContext with current information.

How to Access HttpContext in Controller?

Let’s see how to access the HttpContext in a controller. Controllers expose the ControllerBase.HttpContext property so we can directly access the HttpContext properties for the current Http request. The best practice is to always access HttpContext through the DI with a default implementation of HttpContextAccessor.

Example: The example below shows accessing the HttpContext in a controller GET action method:

[HttpGet("/getDetails")]
public string GetDetails()
{
   var result = "Method - " + HttpContext.Request.Method + 
                " Path - " + HttpContext.Request.Path;
   return result;
}

Output: Method - GET Path - /getdetails

How to Access HttpContext in Service?

In ASP.NET Core, if we need to access the HttpContext in service, we can do so with the help of IHttpContextAccessor interface and its default implementation of HttpContextAccessor. It’s only necessary to add this dependency if we want to access HttpContext in service.

To use HttpContext in service we need to do following two steps:

Step 1: Register a dependency using the .NET Core built-in dependency injection container as below in Startup.cs class of ConfigureServices method:

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

Step 2: Next, inject the IHttpContextAccessor into the created service constructor and access the properties of HttpContext as below:

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;
        }
    }
}

Now, you can access all the properties of HttpContext in service as shown in the above two steps.

You can also download this example from here.

Note: In .NET this was referenced as HttpContext.Current, but this is deprecated in ASP.NET Core (see here).

Conclusion

In this article, we discussed what HttpContext is and how to use it in a controller. After that we saw how to register and use it in service. If you have any suggestions or queries regarding this article, please leave a comment or contact me at one of the links in my bio.

“Learn It, Share it.”


This content originally appeared on Telerik Blogs and was authored by Jeetendra Gund


Print Share Comment Cite Upload Translate Updates
APA

Jeetendra Gund | Sciencx (2021-03-19T18:26:20+00:00) How to Get HttpContext in ASP.NET Core. Retrieved from https://www.scien.cx/2021/03/19/how-to-get-httpcontext-in-asp-net-core/

MLA
" » How to Get HttpContext in ASP.NET Core." Jeetendra Gund | Sciencx - Friday March 19, 2021, https://www.scien.cx/2021/03/19/how-to-get-httpcontext-in-asp-net-core/
HARVARD
Jeetendra Gund | Sciencx Friday March 19, 2021 » How to Get HttpContext in ASP.NET Core., viewed ,<https://www.scien.cx/2021/03/19/how-to-get-httpcontext-in-asp-net-core/>
VANCOUVER
Jeetendra Gund | Sciencx - » How to Get HttpContext in ASP.NET Core. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/03/19/how-to-get-httpcontext-in-asp-net-core/
CHICAGO
" » How to Get HttpContext in ASP.NET Core." Jeetendra Gund | Sciencx - Accessed . https://www.scien.cx/2021/03/19/how-to-get-httpcontext-in-asp-net-core/
IEEE
" » How to Get HttpContext in ASP.NET Core." Jeetendra Gund | Sciencx [Online]. Available: https://www.scien.cx/2021/03/19/how-to-get-httpcontext-in-asp-net-core/. [Accessed: ]
rf:citation
» How to Get HttpContext in ASP.NET Core | Jeetendra Gund | Sciencx | https://www.scien.cx/2021/03/19/how-to-get-httpcontext-in-asp-net-core/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.