1. Request["referer"];
2. HttpRequest.UrlReferrer
3. Request.UrlReferrer.AbsolutePath
4. HttpContext.Current.Request.Url.ToString()
5. Request.ServerVariables["Http_Referer"] 可以获得上个页面链接地址
总有一款适合你。
但是用户是Ajax请求。 HttpRequest.UrlReferrer 是获取不到。 我这个已经经过测试的。IIS 可以限制,但是公司觉得麻烦,想在便利些。
@菜鸟无名: 你先要了解需求, 是想要防止别人调用这个ajax吗?
@问天何必: 这个服务在公网上, 只要知道了地址,谁都可以访问, 公司需要限制请求来的域名,只有是在白名单的地址,才能访问该服务。
@菜鸟无名: 告诉你个不幸的消息, 就算你用来路来判断, 别人一样可以伪造来路。
你的ajax是什么样的
@菜鸟无名: 一如楼上所说,来源的网址是可以伪造的,而且就算不伪造也有局限性(比如:非a链接请求会获取到空?);如果想避免非授权站点的访问,还是用IP限制吧
mvc判断ajax请求 if (Request.IsAjaxRequest()){}