Memedon
Memedon

Reputation: 927

Getting the Base URL in ASP.Net Core

I've just recently switched over from ASP.NET MVC to using .Core 2 and I can't figure out how to get the current URL in Core. I could get it easily enough using the Request in previous asp.net versions, but since that's no long valid in .Net Core I'm at a loss.

I haven't been able to find any way from my google searching as of now.

Any help is appreciated. Thanks!

Upvotes: 8

Views: 22959

Answers (2)

Christopher Lake
Christopher Lake

Reputation: 378

In the ConfigureServices method of your Startup.cs file, add the line:

services.AddHttpContextAccessor();

and you will now have access to the IHttpContextAccessor interface throughout your code when using dependency injection.

Usage as follows:

public class CustomerRepository
{
    private readonly IHttpContextAccessor _context;

    public CustomerRepository(IHttpContextAccessor context)
    {
        _context = context;
    }

    public string BaseUrl()
    {
        var request = _context.HttpContext.Request;
        // Now that you have the request you can select what you need from it.
        return string.Empty;
    }
}

Hope this answers your question :)

Upvotes: 18

Anton Dremin
Anton Dremin

Reputation: 231

Try:

public class Startup {
    public Startup(IConfiguration configuration, IHostingEnvironment env) {
        Configuration = configuration;
        HostingEnvironment = env;
        var url = configuration[WebHostDefaults.ServerUrlsKey];
   }

Please note that you can get more than one url.

Upvotes: 9

Related Questions