怎样使站内的某些图片设置权限不给其他人访问,不能用http://www.xx.com/img/x.jpg来访问。如果访问该图片就显示其他的图片,类似防盗连

heqiufanasp 2008-09-04 11:42:44
怎样使站内的某些图片设置权限不给其他人访问,不能用http://www.xx.com/img/x.jpg来访问。如果访问该图片就显示其他的图片,类似防盗连!
可以设置该图片给不给访问,麻烦各位高手指点指点!
...全文
101 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
heqiufanasp 2008-09-04
  • 打赏
  • 举报
回复
那怎么设置某个文件夹下的图片 不可以访问呢?
wanghao3616 2008-09-04
  • 打赏
  • 举报
回复
1 建一个网站(vs.net 2005),然后添加一个Handler.ashx处理文件,处理HTTP请求,代码如下
<%@ WebHandler Language="C#" Class="Handler" %> using System;
using System.Web;
public class Handler : IHttpHandler {

public void ProcessRequest (HttpContext context) {
//判断是否是本地引用,如果是则返回给客户端正确的图片
//这里的判断就是用到了http请求中所记录的页信息
//如果是网站,可将“localhost”修改为网站地址
if (context.Request.UrlReferrer.Host == "localhost")
{
//设置客户端缓冲中文件过期时间为0,即立即过期。
context.Response.Expires = 0;
//清空服务器端为此会话开辟的输出缓存
context.Response.Clear();
//获得文件类型
context.Response.ContentType = "image/jpg";
//将请求文件写入到输出缓存中
context.Response.WriteFile(context.Request.PhysicalPath);
//将输出缓存中的信息传送到客户端
context.Response.End();
}
//如果不是本地引用,则属于盗链引用,返回给客户端错误的图片
else
{
//设置客户端缓冲中文件过期时间为0,即立即过期。
context.Response.Expires = 0;
//清空服务器端为此会话开辟的输出缓存
context.Response.Clear();
//获得文件类型
context.Response.ContentType = "image/jpg";
//将特殊的报告错误的图片文件写入到输出缓存中
context.Response.WriteFile(context.Request.PhysicalApplicationPath + "error.jpg");
//将输出缓存中的信息传送到客户端
context.Response.End();
}
}
public bool IsReusable
{
get
{
return true;
}
}
}
然后同样建立一个Handler.cs文件,放在app_code目录下,其内容就是上面的handler.aschx了,
2 在web.config中配置如下
<httpHandlers>
<add verb = "*" path = "*.jpg" type="Handler" />
</httpHandlers>


3 在IIS里处理
在IIS里的默认网站的“配置”里,在“应用程序映射”里添加映射
其中映射的可执行文件为 “vs.net2005安装路径\aspnet_isapi.dll",扩展名为".jpg",这样就可以了
<PIXTEL_MMI_EBOOK_2005>2 </PIXTEL_MMI_EBOOK_2005>

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧