直接访问一个网站的某个文件 比如http://www.xx.xxx/a.mp3和 我们访问一个页面的时候 页面里需要访问http://www.xx.xxx/a.mp3有什么区别?
我们在服务器上可以利用方法判别2种不同的请求?其实我的最终要实现的是 禁止用户下载和防止别的站点盗链现在使用了COOKIE加服务器验证 可以实现了  在没有COOKIE下的情况下 盗链和用户下载都能规避了问题是 如果用户有了COOKIE 而且正在浏览本网站 那么 还是可以下载的,当然也可以盗链 这个问题可以不考虑

解决方案 »

  1.   

    其实是,不能区分的...
    为什么呢,我给楼主个建议,去下一个fiddler装上,对第一次请求和登陆后请求的http头进行仔细的查看,你就可以知道cookie的原理,以及每次请求有什么不一样,这样就能解决你心中的疑惑了
      

  2.   

    直接访问和在页面中进行访问是一样的.不过你可以判断 HTTP-REFERER.直接访问HTTP-REFERER的值为空,页面中访问的话他的值为该页面的url不过HTTP-REFERER可以伪造!
      

  3.   

    比如说浏览器 访问A页面 
    首先给服务器发送请求  
    服务器把A页面的HTML发送过去  
    然后浏览器开始解析HTML  这个时候
    有开始请求页面的 图片 音乐 FLASH等文件的信息
     服务器又将相关的信息发送给浏览器
    是这样运行的吧?观察IIS的日志记录好像就是这样的
    如果是这样运行的话 
    那直接请求和页面内的文件请求就没有区别了
      

  4.   

    这个方法测试过了
    使用context.Request.UrlReferrer 在页面访问音乐文件的时候 也有可能出现空的情况
    有的时候是2次请求 有的时候是3次请求音乐文件 不知道 怎么 回事?
      

  5.   

    其实你想要的是不是,你页面上有个MP3文件,不想用户看到这个链接,也不想用户用这个链接下载,
    你可以禁止右键等操作来实现,不过这些操作其实都是针对普通用户来说可行偶,其实你网站的所有文件最终都会在客户端的IE缓存目录里找到,也就是说即使用户在网页里获取不到,也能在缓存目录里找到。