后台登录安全权限验证五

  后台安全登陆之输入用户名和密码。。。。。。验证用户是否正确的时机我选择 Http Module来处理。

  Http Module 是于应用程序集的事件息息相关的。也就是说每个请求都要经由Http Module来处理。

实现自己 Http Module  就要实现 IHttpModule接口。 IHttpModule 只有两个方法。如下:

public void Init(HttpApplication context);
public void Dispose();

 

Init 方法接收一个HttpApplication 类型对象参数,HttpApplication代表了当前的应用程序,我们需要在这个方法内注册

 HttpApplication对象暴露给客户端的事件。可见,这个方法仅仅是用来对事件进行注册,而实际的事件处理程序,

需要我们另外写方法。Dispose方法用来释放一些资源。

 

下面我们来定义自己的 Http Module 

  /************************************************************************/
    /* 进行用户验证
    /************************************************************************/
    public class CommonHttpModule : IHttpModule

  {

       public void Dispose()
        {
        }

        public void Init(HttpApplication context)     //此处进行事件的注册
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }


            AuthenticationSection section1 = (AuthenticationSection)WebConfigurationManager.GetSection("system.web/authentication");
            if (section1.Mode == AuthenticationMode.Forms)     //判断是否为表单验证,如果是则进行事件注册
            {
                context.AuthenticateRequest += new EventHandler(this.Application_AuthenticateRequest);
                context.PostAuthenticateRequest += new EventHandler(this.Application_PostAuthenticateRequest);            
            }
        }

}

private void Application_PostAuthenticateRequest(object sender, EventArgs e)  //主要用来验证通过验证用户的操作

 private void Application_AuthenticateRequest(object sender, EventArgs e)   //注册事件的方法

 {

     ...... 

    string formsCookieName = FormsAuthentication.FormsCookieName; //根据登陆页面生成的票据来获取票证的cookie名称,用来初始化用户的信息。

     ...... 

}

 

 

  NOTE: 在Http Module  中除了判断用户是否通过验证外,还可以判断通过验证的用户属于哪些角色,拥有哪些权限。以及其他的应用程序级事件请求。

 

添加自定义Http Module 的方法。

<httpModules>
     <add name="CommonHttpModule" type="PaWeb.Web.HttpModules.CommonHttpModule,PaWeb.Web"/>

  </httpModules>

 

CommonHttpModule:Module 名称

PaWeb.Web.HttpModules.CommonHttpModule: 自定义Module 类文件名称。

PaWeb.Web: 自定义Module 类所在的程序集名称。

你可能感兴趣的:(安全)