2010-09-11 2 views
0

ОК, вот что ... Вы выбираете IP-адрес пользователя и на основе своей страны вы перенаправляете пользователя на определенную веб-страницу. Теперь, как вы динамически меняете главную страницу? Это, как я перенаправлять пользователя: -Начальный вопрос ASP.NET C# о динамически изменяющихся главных страницах

Geolocation error with IP address 127.0.0.1

Это не так, как пользователь нажимает кнопку или какой-то, и вы затем изменить главную страницу. Я хочу, чтобы это изменилось, когда пользователь перенаправлен, и как именно я могу это сделать?

public partial class testClass: System.Web.UI.MasterPage 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (redirected to site1) 
     { 
       Use this master page1 
     } 
     else 
      if (redirected to site2) 
      { 
       Use this master page2 
      } 
    } 
} 

Как я могу проверить, к какому САЙТУ перенаправлен пользователь? Также КАК применить конкретную главную страницу, когда пользователь перенаправлен?

Мне просто нужна идея, как это сделать.

[EDIT], пожалуйста, проверьте блок кода ниже. Как получить URL, к которому перенаправлен пользователь? Мне действительно нужно только значение переменной «iso3166TwoLetterCode» (см. Ссылку на мой предыдущий вопрос, пожалуйста), и на основе этого будет изменена главная страница. Я не могу понять, как получить это значение или даже использовать этот класс (который получил эту переменную) в моем тестовом кластере.

protected void Page_PreInit(object sender, EventArgs e) 
    { 
     if (user Has been redirected to www.site.in) 
     { 
      this.MasterPageFile = "master1.master"; 
     } 

     if (user Has been redirected to www.site.fr) 
     { 
      this.MasterPageFile = "master2.master"; 
     } 
    } 

ответ

1

Чтобы узнать буквенный код страны два, делать то, что этот пример кода из http://ipaddressextensions.codeplex.com/ делает:

using System.Net; 
using WorldDomination.Net; 

string userHostIpAddress = "203.1.2.3"; 
IPAddress ipAddress; 
if (IPAddress.TryParse(userHostIpAddress, out ipAddress)) 
{ 
    string country = ipAddress.Country(); // return value: UNITED STATES 
    string iso3166TwoLetterCode = ipAddress.Iso3166TwoLetterCode(); // return value: US 
} 

вы можете попробовать что-то вроде этого, чтобы изменить мастер:

protected void Page_PreInit(object sender, EventArgs e) 
{ 
    this.MasterPageFile = "NewMasterSite.master"; 
} 
+0

не могли бы вы проверить дополнительные данные, которые я только что добавил? thnx – Serenity

+0

Я думал, вы уже реализовали это. – Philipp

+0

понял, как получить этот код с url..got помочь здесь http://stackoverflow.com/questions/3698196/how-do-i-check-for-a-urls-top-level-domain-in- жерех-нетто-с – Serenity

0

Это звучит, как вы не перенаправляется на другой сайт, просто отправив их на страницу с строки запроса, как «язык = еп». Если это так, то вам нужно получить его с помощью Request.QueryString и добавить его к основному имени главной страницы.

+0

ОКК .. поэтому, если это веб-страница. Как мне нравится получить URL-адрес (например, -www.mysite.in), а затем проверить его с помощью «Request.QueryString» .. после этого как изменить главную страницу? – Serenity

+0

Основываясь на вашем примере, вы вообще не используете querystring. Скорее, у вас есть несколько поддоменов, возможно, на виртуальном сервере. В этом случае попробуйте 'Request.Uri'. Если это не работает, 'Request.ServerVariables [" Host "]' будет. –

+0

Позвольте мне исправить себя: HTTP-заголовок называется «Host», но вы должны обратиться к нему здесь через «HTTP_HOST». В качестве альтернативы, я думаю, что «URL» будет делать то, что вы хотите. –

Смежные вопросы