1

我希望能够使用某种形式的 ID 来识别移动设备。

我读了这个答案:Get unique, static id from a device via web request about reading x headers in asp.net 但是当我使用以下代码列出所有标头时,我没有得到任何有用的 x 标头

    For Each var As String In Request.ServerVariables
        Response.Write("<b>" & var & "</b>: " & Request(var) & "<br>")
    Next

在我的安卓设备上,我得到的唯一 X 标头是 HTTP_X_WAP_PROFILE

4

2 回答 2

2

如果您想阅读 HTTP 标头,那么您就走错了路。ServerVariables 仅包含来自标头的一些信息。

您应该查看 Request.Headers 属性。以下代码将列出来自 HTTP 请求的所有标头。推测您所指的“x”标题将在那里..

For Each headerName As String In Request.Headers.AllKeys
    Response.Write("<b>" & headerName & "</b>: " & Request.Headers(headerName) & "<br>")
Next
于 2013-02-18T14:42:53.513 回答
1

要读取标题值,您可以使用下面的代码。
我通过使用user-agent它可以了解浏览器。

C#

var headers = Request.Headers.ToString();

// If you want it formated in some other way.
var headers = String.Empty;
foreach (var key in Request.Headers.AllKeys)
  headers += key + "=" + Request.Headers[key] + Environment.NewLine;

VB.NET:

Dim headers = Request.Headers.ToString()

' If you want it formated in some other way.'
Dim headers As String = String.Empty
For Each key In Request.Headers.AllKeys
  headers &= key & "=" & Request.Headers(key) & Environment.NewLine
Next

在 ASP.NET (Android) 中检测移动设备用户代理

 //for Mobile device 
    protected override void OnInit(EventArgs e) 
    { 

        string userAgent = Request.UserAgent; 
        if (userAgent.Contains("BlackBerry") 
          || (userAgent.Contains("iPhone") || (userAgent.Contains("Android")))) 
        { 
            //add css ref to header from code behind 
            HtmlLink css = new HtmlLink(); 
            css.Href = ResolveClientUrl("~/mobile.css"); 
            css.Attributes["rel"] = "stylesheet";  
            css.Attributes["type"] = "text/css";  
            css.Attributes["media"] = "all";  
            Page.Header.Controls.Add(css); 
        }       
    }
于 2013-02-18T14:46:50.650 回答