ASP.NET 应用程序级 验证用户是否登录 一般处理程序

 更新时间:2010年07月03日 00:59:27   作者:   我要评论
验证用户登录后才能访问页面和进行操作的方法有好几种,比如:Forms,基类中处理、窗体类继承基类,单独写个方法在每个窗体类的Page_Load中调用等。
大家应该都希望有一种应用程序级的简单处理程序,今天刚好被人问及,所以就简单写了下代码,具体步骤如下:

1、创建一个类库项目,名为IHandlers,名称自定义
2、在类库项目中添加【ASP.NET处理程序】,名为HandleSession.cs。打开此文件,添加引用:

using System.Web.SessionState
让HandleSession类继承接口IReadOnlySessionState。
以上两步是为了可以使用Session对象。
该类的完整代码如下:
复制代码 代码如下:

using System;
using System.Web;
using System.Web.SessionState;
namespace IHandlers
{
public class HandleSession : IHttpHandler, IReadOnlySessionState
{
/// <summary>
/// 您将需要在您网站的 web.config 文件中配置此处理程序,
/// 并向 IIS 注册此处理程序,然后才能进行使用。有关详细信息,
/// 请参见下面的链接: http://go.microsoft.com/?linkid=8101007
/// </summary>
#region IHttpHandler Members
public bool IsReusable
{
// 如果无法为其他请求重用托管处理程序,则返回 false。
// 如果按请求保留某些状态信息,则通常这将为 false。
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
//在此写入您的处理程序实现。
if (context.Session["UID"] == null)
{
context.Response.Redirect("http://www.baidu.com");
}
}
#endregion
}
}


实际上就是判断如果Session对象不存在就跳转到百度首页。
3、编译类库项目,生成dll,在站点中添加对此dll的引用
4、在网站的web.config中注册此处理程序,在<httpHandlers></httpHandlers>中添加下面一行代码,
复制代码 代码如下:

<httpHandlers>
<add verb="*" path="temp/*.aspx" type="IHandlers.HandleSession, IHandlers" />
</httpHandlers>

path:指定的是根目录下/temp文件夹下的所有*.aspx文件
type:命名空间名.类名,程序集名
更多参数说明请参考微软 MSDN
如此处理之后,当用户访问temp文件夹下的aspx文件时就会触发一般处理程序。
防盗链、防下载都可以采用这种方式处理。

相关文章

  • 创建一个完整的ASP.NET Web API项目

    创建一个完整的ASP.NET Web API项目

    ASP.NET Web API具有与ASP.NET MVC类似的编程方式,ASP.NET Web API不仅仅具有一个完全独立的消息处理管道,而且这个管道比为ASP.NET MVC设计的管道更为复杂,功能也更为强大。下面创建一个简单的Web API项目,需要的朋友可以参考下
    2015-10-10
  • ASP.NET操作Word的IIS权限设置

    ASP.NET操作Word的IIS权限设置

    检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。
    2011-02-02
  • ASP.NET WebAPi(selfhost)实现文件同步或异步上传

    ASP.NET WebAPi(selfhost)实现文件同步或异步上传

    这篇文章主要介绍了ASP.NET WebAPi(selfhost)实现文件同步或异步上传,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • 分析10个ASP.NET控件最有用的属性详解

    分析10个ASP.NET控件最有用的属性详解

    对于微软平台开发人员而言,每天都要和各种ASP.NET控件打交道,本文不打算介绍各种控件的具体使用方法,相反,我只想和大家分享一下ASP.NET控件最有用的10个属性,相信读完本文可提升你的开发技能。
    2011-08-08
  • Asp.net使用SignalR实现聊天室的功能

    Asp.net使用SignalR实现聊天室的功能

    这篇文章主要介绍了Asp.net使用SignalR实现聊天室的功能的相关资料,需要的朋友可以参考下
    2016-04-04
  • asp.net 判断数组是否存在某个值的方法

    asp.net 判断数组是否存在某个值的方法

    asp.net 判断数组是否存在某个值的两种方法, 需要的朋友可以参考下。
    2010-07-07
  • 禁止ViewState的3种解决方法

    禁止ViewState的3种解决方法

    默认情况下,ViewState是被启用的,比如提交表单后,表单中输入的值会自动保留。但是如果不需要保留,也可以将其禁用,这样可以节省资源。
    2013-03-03
  • asp.net直接Response输出WML页面示例代码

    asp.net直接Response输出WML页面示例代码

    本例实现直接Response输出WML页面,具体代码如下,有需要的朋友可以和参考下
    2013-08-08
  • 如何为asp.net网站项目添加子项目

    如何为asp.net网站项目添加子项目

    最近要给公司的电子商务网站添加个圈子的功能.网站功能本来就包含有新闻发布,会员管理,商品购物,后台管理等,现在又要再加上圈子的功能,网站项目越来越复杂,每次编译生成的dll超过100k.这样每次修改任何一个功能中的任何一个小问题都要上传整个dll,并导致整个website的首次访问的重新编译.
    2008-10-10

最新评论