【问题标题】:Request.Url.AbsoluteUri and Request.UrlReferrer.AbsoluteUri are empty sometimesRequest.Url.AbsoluteUri 和 Request.UrlReferrer.AbsoluteUri 有时为空
【发布时间】:2019-12-05 10:22:56
【问题描述】:

我使用Request.Url.AbsoluteUri检测请求的url,但是有些请求没有UrlUrl Referrer

这里是代码:

db.Visits.Add(new Visit {
    Url = Request.Url.AbsoluteUri,
    UrlReferrer = Request.UrlReferrer.AbsoluteUri
});

结果:

  • 正常吗?
  • 我应该阻止这些请求吗?
  • 它们是搜索引擎的爬虫吗?
  • 我应该如何表现?

【问题讨论】:

  • 你想要当前的 URL 和最后的引用 URL?
  • @jishansiddique - 完全正确
  • @Hooman,你找到答案了吗?我面临同样的问题(有一台服务器我只能读取主机和架构,我没有路径值也没有查询字符串)。

标签: c# asp.net-mvc url


【解决方案1】:

首先,检查您的 Request 对象。

您有时可能需要从 URL 获取不同的值。

以下示例显示了提取 URL 不同部分的不同方法

示例:(示例网址)

http://localhost:6061/MyWebSite/Default2.aspx?QueryStringValue=1

代码

Response.Write("<br/> " + HttpContext.Current.Request.Url.Host);
Response.Write("<br/> " + HttpContext.Current.Request.Url.Authority);
Response.Write("<br/> " + HttpContext.Current.Request.Url.Port);
Response.Write("<br/> " + HttpContext.Current.Request.Url.AbsolutePath);
Response.Write("<br/> " + HttpContext.Current.Request.ApplicationPath);
Response.Write("<br/> " + HttpContext.Current.Request.Url.AbsoluteUri);
Response.Write("<br/> " + HttpContext.Current.Request.Url.PathAndQuery);

下面的输出请检查

localhost
localhost:6061
6061
/MyWebSite/Default2.aspx
/MyWebSite
http://localhost:6061/MyWebSite/Default2.aspx?QueryStringValue=1
/MyWebSite/Default2.aspx?QueryStringValue=1

注意:如果你愿意,上面的代码通常在 ASP.NET WEB FROM 中工作。在 MVC 中,你需要更改一些基于路由的值。

【讨论】:

    猜你喜欢
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多