Я пытаюсь перенаправить пользователя в поддомену, основываясь на его местоположении IP-адреса. У меня есть наблюдатель нагрузки страницы, который запускает функцию для каждого запроса и получает местоположение пользователя, и когда я пытаюсь перенаправить на другой домен, он дает мне ошибку «Слишком много переадресаций», и я не могу найти способ решить эту проблему ,Перенаправление пользователя в поддомену на основе IP
В настоящее время мой код выглядит следующим образом
string CountryName = "";
var Country = HttpContext.Current.Response.Cookies["Country"];
Country.Expires = DateTime.Now.AddDays(365);
var ip = HttpContext.Current.Request.UserHostAddress;
if (!string.IsNullOrEmpty(ip) && ip != null && ip != "127.0.0.1")
{
using (var client = new WebServiceClient(xxxxx, "xxxxxxxx"))
{
var IpCountry = client.Country(ip);
CountryName = IpCountry.Country.Name;
}
switch (CountryName)
{
case "Denmark":
if (Country.Value != CountryName)
{
Country.Value = CountryName;
HttpContext.Current.Response.Redirect("/");
}
break;
case "United Kingdom":
if (Country.Value != CountryName)
{
Country.Value = CountryName;
HttpContext.Current.Response.Redirect("/en");
}
break;
case "Germany":
if (Country.Value != CountryName)
{
Country.Value = CountryName;
HttpContext.Current.Response.Redirect("/de");
}
break;
case "Sweden":
if (Country.Value != CountryName)
{
Country.Value = CountryName;
HttpContext.Current.Response.Redirect("/se");
}
break;
case "Norway":
if (Country.Value != CountryName)
{
Country.Value = CountryName;
HttpContext.Current.Response.Redirect("/no");
}
break;
default:
if (Country.Value != CountryName)
{
Country.Value = CountryName;
//HttpContext.Current.Response.Redirect("http://www.google.com");
}
break;
}
}
else if (loadedArgs.pageview.Area.ID != 2)
{
HttpContext.Current.Response.Redirect("/choose-country");
}
Более того, я также хотел бы знать, что могут быть и другие возможные способы обработки этого сценария в более лучшую сторону так что этот код не выполняющиеся на каждой странице загрузите файлы cookie. Спасибо заранее.
Вы имеете в виду, когда вы раскомментируете перенаправление на google, вы получаете ошибку во многих переадресациях? –
@VolodymyrBilyachat Нет, когда я прокомментирую все переадресации, он работает отлично, другой мудрый он дает мне ошибку Слишком много перенаправлений. что имеет смысл, так как этот код работает при загрузке страницы, и после перенаправления он снова запускает код и попадает в бесконечный цикл. Поэтому я хочу выяснить, как предотвратить это? –
Где вы на самом деле устанавливаете cookie с названием страны? – Evk