首页新闻找找看学习计划

asp.net Request如何判断请求来源。

0
悬赏园豆:30 [已解决问题] 解决于 2015-06-02 09:11

  如A地址是www.A.com,请求B的服务www.B.com。B该怎么取获取到请求来源的地址是A的地址?

菜鸟无名的主页 菜鸟无名 | 初学一级 | 园豆:9
提问于:2015-06-01 11:16
< >
分享
最佳答案
0

1. Request["referer"];

2. HttpRequest.UrlReferrer 
3. Request.UrlReferrer.AbsolutePath
4. HttpContext.Current.Request.Url.ToString()
5. Request.ServerVariables["Http_Referer"] 可以获得上个页面链接地址

总有一款适合你。 

收获园豆:30
问天何必 | 老鸟四级 |园豆:3291 | 2015-06-01 11:23

但是用户是Ajax请求。  HttpRequest.UrlReferrer 是获取不到。 我这个已经经过测试的。IIS 可以限制,但是公司觉得麻烦,想在便利些。

菜鸟无名 | 园豆:9 (初学一级) | 2015-06-01 11:24

@菜鸟无名: 你先要了解需求, 是想要防止别人调用这个ajax吗? 

问天何必 | 园豆:3291 (老鸟四级) | 2015-06-01 11:27

@问天何必: 这个服务在公网上, 只要知道了地址,谁都可以访问, 公司需要限制请求来的域名,只有是在白名单的地址,才能访问该服务。

菜鸟无名 | 园豆:9 (初学一级) | 2015-06-01 11:29

@菜鸟无名:  告诉你个不幸的消息,  就算你用来路来判断, 别人一样可以伪造来路。  

 你的ajax是什么样的

问天何必 | 园豆:3291 (老鸟四级) | 2015-06-01 11:33

@菜鸟无名: 一如楼上所说,来源的网址是可以伪造的,而且就算不伪造也有局限性(比如:非a链接请求会获取到空?);如果想避免非授权站点的访问,还是用IP限制吧

某猿 | 园豆:373 (菜鸟二级) | 2015-06-01 23:08
其他回答(1)
0

mvc判断ajax请求 if (Request.IsAjaxRequest()){}

You最温暖的港湾 | 园豆:103 (初学一级) | 2015-06-01 16:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册