我正在开发一个分类网站
。该网站有很多子域,例如 dubai.sitedomain.com
、london.sitedomain.com
、newyork.sitedomain.com
等,具体取决于在城市上。我使用 Angularjs
作为前端,使用 Web Api
作为服务器端。
我的要求是我想在我的 Web Api Action
上获取 subdomain
。喜欢:
[HttpGet]
[Route("GetAds")]
public IHttpActionResult GetAds()
{
// Here I want to know, from which subdomain the request has been sent
// so I can filter my ads according to the city
var city = "city from subdomain";
var list = _adService.GetAdsByCity(city);
return Ok(list);
}
最佳答案
使用 Request.Headers.Referrer.Host.Replace(".sitedomain.com", string.Empty);
当然这只适用于您的实时环境,因此您可能需要修改它以在您的本地测试域上以不同方式工作,或提供某种默认回退。我建议将其提取到公共(public)库中的方法中,因为您可能会在很多地方需要它。
或者,如果你知道它永远是第一部分,你可以使用
Request.Headers.Referrer.Host.Substring(0, Request.Headers.Referrer.Host.IndexOf("."));
关于c# - 如何在 Web API 操作上获取子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31681028/