在ASP.NET页面/应用程序生命周期的什么时候,我应该根据用户的国家/地区重定向用户?

在ASP.NET页面/应用程序生命周期的什么时候,我应该根据用户的国家/地区重定向用户?,asp.net,redirect,Asp.net,Redirect,我们有一个web应用程序,需要根据IP地址的地理位置将客户从.com重定向到.co.uk域。我应该在何时/何地执行此操作 内容将根据他们的位置略有变化,但我认为我可以处理好。但是,如果有人对处理此问题的最佳方法有任何意见,我也希望听到这些意见。我会使用HttpModule。这是最早执行重定向的地方。如果您想在应用程序代码中执行此操作,我会在IP可用时尽早执行此操作,在global.asax中的应用程序\u BeginRequest处理程序中: protected void Application

我们有一个web应用程序,需要根据IP地址的地理位置将客户从
.com
重定向到
.co.uk
域。我应该在何时/何地执行此操作


内容将根据他们的位置略有变化,但我认为我可以处理好。但是,如果有人对处理此问题的最佳方法有任何意见,我也希望听到这些意见。

我会使用HttpModule。这是最早执行重定向的地方。

如果您想在应用程序代码中执行此操作,我会在IP可用时尽早执行此操作,在global.asax中的
应用程序\u BeginRequest
处理程序中:

protected void Application_BeginRequest(object sender, EventArgs e)
{
  var ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
  //Redirect here...
}

有什么原因让我更喜欢代码而不是配置设置吗?我从来没有见过这种内置的配置设置……您的选项是HttpModule、Global.asax代码(易用性/灵活性,尽管在这些方面它相当于HttpModule)或IIS module的形式。Global.asax不推荐使用。使用HttpModule有几个很好的理由,而且同样简单。@Bryan-你能把我链接到Global不推荐使用的地方吗?我想我不能。。。我的印象是,这完全是为了向后兼容,但ASP.NET 3.5文档列出了它,但没有提到这一点。Global.asax是否提供了HttpModule可以访问的相同事件?是的,但有两个理由选择HttpModule。这是一本好书: