惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
WordPress大学
WordPress大学
O
OpenAI News
量子位
Last Week in AI
Last Week in AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
小众软件
小众软件
有赞技术团队
有赞技术团队
V
V2EX
宝玉的分享
宝玉的分享
月光博客
月光博客
腾讯CDC
IT之家
IT之家
博客园 - 【当耐特】
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tenable Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Vulnerabilities – Threatpost
美团技术团队
博客园 - 三生石上(FineUI控件)
博客园_首页
博客园 - Franky
T
Threatpost
阮一峰的网络日志
阮一峰的网络日志
博客园 - 司徒正美
Project Zero
Project Zero
Cyberwarzone
Cyberwarzone
博客园 - 叶小钗
雷峰网
雷峰网
Latest news
Latest news
S
SegmentFault 最新的问题
罗磊的独立博客
Help Net Security
Help Net Security
Hugging Face - Blog
Hugging Face - Blog
Jina AI
Jina AI
P
Proofpoint News Feed
L
LINUX DO - 热门话题
爱范儿
爱范儿
大猫的无限游戏
大猫的无限游戏
酷 壳 – CoolShell
酷 壳 – CoolShell
K
Kaspersky official blog
A
Arctic Wolf
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
GRAHAM CLULEY
F
Fortinet All Blogs
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
PCI Perspectives
PCI Perspectives
Security Archives - TechRepublic
Security Archives - TechRepublic

博客园 - 小肠与小豆子

博客园MetaWeblog使用帮助 [ASP.NET 1.1]Global.asax.cs中的方法的含义 Microsoft .NET Pet Shop 4 架构与技术分析 转载:键盘模拟鼠标(实现用键盘操作鼠标光标)(示例代码下载) 转载:Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0)(示例代码下载) 转载:Asp.net 2.0 用C# 创建 PDF文件[引用] (示例代码下载) 转载:Asp.net 2.0 C#实现压缩/解压功能 (示例代码下载) 转载:asp.net千奇百怪的日历 转载:ASP.net 2.0资料吐血收藏 解决:此页正在访问其它域的数据…… sql server系统表详细说明 数据库设计方法、规范与技巧 (转自Blogcn的我的窝) 14个数据库的设计技巧 (来自Blogcn中我的窝) SQL 数据库中所有的用户表,一个表的中的所有列信息 的SQL 转载:汉字转拼音_gb2312 C# C#中的一些常用属性 IIS状态一览表 IIS简介 IIS中的 MIME类型
转载:ASP.NET 2.0 HttpHandler实现对某种文件类型权限保护
小肠与小豆子 · 2007-05-24 · via 博客园 - 小肠与小豆子

原文:http://blog.csdn.net/ChengKing/archive/2007/01/05/1475121.aspx

学习整理了一下

(一). HttpHandlers能够处理对某种特定文件类型的请求.

例如, 在machine.config 文件中默认已经有大部分的系统处理Handlers:

<httpHandlers>

   <add verb=”*” path=”*.aspx” type=”System..Web.UI.PageHandlerFactory” />

   <add verb=”*” path=”*.ascx” type=”System..Web.HttpForbiddenHandler” />

   <add verb=”*” path=”*.cs” type=” System..Web.HttpForbiddenHandler” />

   <add verb=”*” path=”*.skin” type=” System..Web.HttpForbiddenHandler” />

   <add verb=”*” path=”*.sitemap” type=” System..Web.HttpForbiddenHandler” />

   …….

</httpHandlers>

创建一个HttpHandler也非常简单,下面将创建一个自定义的HttpHandler,

功能为验证访问: *.jpeg/jpg 图像文件权限. 通过这个示例演示其用法.

(二).代码如下

 1. 处理程序HttpHandler文件 JpgHandler.cs 代码

 1 using System;
 2 using System.Data;
 3 using System.Configuration;
 4 using System.Web;
 5 using System.Web.Security;
 6 using System.Web.UI;
 7 using System.Web.UI.WebControls;
 8 using System.Web.UI.WebControls.WebParts;
 9 using System.Web.UI.HtmlControls;
10 
11 /// <summary>
12 ///  只有 admin 权限用户才能直接查看 JPG和JPEG的图片
13 /// </summary>
14 public class JpgHandler : IHttpHandler
15 {
16     public JpgHandler()
17     {    
18     }    
19 public void ProcessRequest(HttpContext hc)
20     {
21         string strFileName = hc.Server.MapPath( hc.Request.FilePath );
22         if (hc.User.IsInRole("admin"))  //当前用户是否为 admin 权限
23         {
24             hc.Response.ContentType = "image/JPEG";
25             hc.Response.WriteFile(strFileName);
26         }
27         else
28         {
29             hc.Response.ContentType = "image/JPEG";
30             hc.Response.Write("No Right");
31         }       
32     }
33     public bool IsReusable
34     {
35         get
36         {
37             return true;
38         }
39     }
40 }
41 

2.前台页面 *.aspx 代码

 1 <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
 2 
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 4 
 5 <html xmlns="http://www.w3.org/1999/xhtml" >
 6 <head runat="server">
 7     <title>HttpHandler validate users right</title>
 8 </head>
 9 <body>
10     <form id="form1" runat="server">
11     <div>
12         <asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl="a.jpeg" ToolTip="Click me!" OnClick="LinkButton1_Click" Width="149px">A.jpeg</asp:LinkButton>
13         &nbsp;
14     </div>
15     </form>
16 </body>
17 </html>
18 

 3.在Web.Config文件中注册自己的处理程序类配置

1 <system.web>
2     <httpHandlers>
3       <add verb="*" path="*.jpg,*.jpeg" type="JpgHandler" />      
4 </httpHandlers>
5 </system.web>

在这里我是将处理程序类 JpgHandler.cs 放到 App_Code文件夹下面,如果此类不是放在此类下面,而是以程序集*.dll格式的,则应该将此程序集放到bin目录下面,并且这样配置:

1 <system.web>
2     <httpHandlers>
3       <add verb="*" path="*.jpg,*.jpeg" type="JpgHandler,YourDll" />      
4 </httpHandlers>
5 </system.web>

  (三). 示例代码下载

           JpgHttpHandler.rar