我有一个在 IIS 10 上使用 .net core 3.1 的 Web 应用程序。我设置了主域,并且有 3 个解析为主域名的别名域。对于我的应用程序,我想知道用户用于访问该站点的域。
我怎么能确定呢?任何能让我指出正确方向的帮助都会很棒。
谢谢!
我有一个在 IIS 10 上使用 .net core 3.1 的 Web 应用程序。我设置了主域,并且有 3 个解析为主域名的别名域。对于我的应用程序,我想知道用户用于访问该站点的域。
我怎么能确定呢?任何能让我指出正确方向的帮助都会很棒。
谢谢!
如果我理解正确,别名域只是一个附加域,它指向与您的主域相同的服务器,所以您没有被重定向到主域?即地址栏仍然显示用户用于访问您的站点的 URL。在这种情况下,它应该像从当前 URL 中读取主机名一样简单。您可以通过 获取该信息IHttpContextAccessor
。
第一步,在startup.cs文件中注册为服务
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
第 2 步,通过 DI 使您的控制器依赖它:
private readonly IHttpContextAccessor _httpContextAccessor;
public YourController(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
第 3 步,从 httpContextAccessor 读取信息:
string domain = _httpContextAccessor.HttpContext.Request.Host.Value;