日期:2014-05-18  浏览次数:20559 次

这样的防盗链接能做吗?
想做一个页面提供给A用户,该用户用iframe嵌入该页面,
我不想其他人也能嵌入这个页面.
有什么方法能够做到吗??能够实现吗?

------解决方案--------------------
关注一下~~~
------解决方案--------------------
一般采用IHttpHandler来实现防盗链
------解决方案--------------------
欠套页面中传递自己知道的可变有规律的参数,作为标示。或者要用到表单验证的或是session 来判断了
------解决方案--------------------
session 判断 一下不就行了
------解决方案--------------------
我觉得是通过传过来的URL进行分析
------解决方案--------------------
mark
------解决方案--------------------
通过对URL的UrlReferrer属性进行分析,如果这个值不是A用户网站过来的,就拒绝。
------解决方案--------------------
将地址加密一下,接手页面还原后再送给各个控件.加密算法可自创.
------解决方案--------------------
(转贴)

很多时候,我们新建一个xxx.aspx页和xxx.aspx.cs文件,不过是为了实现一个很简单的功能,如:输出xmlDom,注销并跳转,并没有什么html的输出,很是麻烦,需要新建一个页,删除多余的html,并在page_load里面写处理代码。而使用HttpHandler就不需要这么麻烦了。

可以用任何符合公共语言规范 (CLS) 的语言编写自定义 HTTP 处理程序来处理特定的、预定义类型的 HTTP 请求。响应这些特定请求的是在 HttpHandler 类中定义的可执行代码,而不是常规的 ASP 或 ASP.NET Web 页。HTTP 处理程序向您提供一种方法,使您可以与 IIS Web 服务器的低级别的请求和响应服务交互,同时提供极其类似于 ISAPI 扩展但编程模型较为简单的功能。

例如我现在需要实现一个注销并跳转的Logout.aspx页面,下面的示例主要实现了响应客户端对名为 logout.aspx 的页的请求,实现注销并跳转。对 logout.aspx 的所有请求均由包含在程序集 WebUC.dll 中的命名空间 WebUC.HttpHandler 中的 LogoutHttpHandler 提供服务。

修改web.config,在 <system.web> </system.web> 中增加如下脚本:
<httpHandlers>
<add verb= "GET " path= "Logout.aspx " type= "WebUC.HttpHandler.LogoutHttpHandler, WebUC " />
</httpHandlers>
其中WebUC.HttpHandler.LogoutHttpHandler是我要实现Logout.aspx功能的类,WebUC是我web项目的dll。(具体介绍可以参阅msdn)

下面是LogoutHttpHandler的代码,继承借口,重写方法和属性。

using System;
using System.Web;
using System.Web.Caching;
using System.Web.Security;

namespace WebUC.HttpHandler
{

public class LogoutHttpHandler : IHttpHandler
{
/// <summary>
/// 通过实现 IHttpHandler 接口的自定义 HttpHandler 启用 HTTP Web 请求的处理。
/// </summary>
/// <param name= "context "> HttpContext 对象,它提供对用于为 HTTP 请求提供服务的内部服务器对象(如 Request、Response、Session 和 Server)的引用。 </param>
public void ProcessRequest (HttpContext context)
{
FormsAuthentication.SignOut();
context.Response.Redirect( "Login.aspx ",true);
}

/// <summary>
/// 获取一个值,该值指示其他请求是否可以使用 IHttpHandler 实例。
/// </summary>
public bool IsReusable
{
get
{
return false;
}
}
}

}
}

编译后,我就可以直接使用http://***/logout.aspx 来实现注销了,而实际上,我的web目录下并没有logout.aspx这个文件,同样,这个技巧可以用在很多方面,例如防止盗链,下载统计等。
文章引用自:

------解决方案--------------------
记得好像有一段js可以实现!
------解决方案--------------------
Request.UrlReferrer