Перенаправить пользователя на поддомен на основе IPC#

Место общения программистов C#
Anonymous
Перенаправить пользователя на поддомен на основе IP

Сообщение Anonymous »

Я пытаюсь перенаправить пользователя на поддомен на основе его 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. Заранее большое спасибо.

Вернуться в «C#»