3

任何人都可以建议我哪个是验证移动浏览器并重定向到移动网站的更好地方。

我正在考虑使用DetectMobileBrowsers来验证移动浏览器。

我正在考虑在Application_Startor中执行此操作Session_Start。请建议我哪个是做同样事情的更好的地方。

这是我的 Session_Start 块

Protected Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
    ' Fires when the session is started
    'Dim request As HttpRequest = HttpContext.Current.Request
    'If request.Browser.IsMobileDevice Then
    '    Response.Redirect("http://localhost:26270/Default.aspx")
    'End If
    Response.Redirect("http://google.com")
End Sub

谢谢

4

3 回答 3

4

与其使用Response.Redirect("http://m.yoursite.com")它,不如使用 2 行,它会暂时将您重定向到移动版本。最好使用:

Response.Status="302 Moved Temporarily"
Response.AddHeader "Location","http://m.yoursite.com"
于 2012-10-27T17:59:01.207 回答
3

你可能应该把它放进去Session_Start因为一旦建立会话,设备将保持不变,当用户第一次访问该站点时,该会话将被称为触发。

只是谷歌并阅读它..

仅供参考,Application_Start在应用程序域的生命周期内调用一次,并且Session_Start每次创建新会话时都会引发事件。

阅读应用程序生命周期将帮助您更好地理解所有这些事件。

于 2012-09-21T18:45:15.003 回答
2

考虑 Application_BeginRequest。请务必检查请求 Url 是您请求的页面,这样您就不会对请求的每个静态文件进行检查。

void Application_BeginRequest(object sender, EventArgs e)
{
   var u = Request.ServerVariables("HTTP_USER_AGENT");
   var uri =  Request.Url.AbsoluteUri.ToLower();
   if (url.Contains(".aspx"))
   {
      //put DetectMobileBrowsersCode Here

      if (b.IsMatch(u) || v.IsMatch(Left(u, 4)))
      {
          Response.Redirect("http://m.yoursite.com");
      } 
   }   
}
于 2012-09-21T19:38:00.400 回答