HttModule和抽象类BasePage两种方式进行用户身份验证

来源:互联网 发布:js获取input内容宽度 编辑:程序博客网 时间:2024/04/30 13:14

      最近一直在做站点内部身份验证的问题,有了一些积累,在这里把.net中两种常见的身份验证的方法分享给大家,希望对网友们有用。

身份验证的目的其实很简单:

1:当用户未进行登录时,要将用户的请求直接发送到相应的登录页面

 

2:只有当用户通过身份验证时,才将用户的请求发送到正确的页面

 

实现的方式之一利用HttpModule

原理:用户进行每一次的HTTPRequet之前,会执行HttpModule,再执行HttpHandler,最后才是Page_Load,所以可以在HTTPModule中写些自定义的方法,进行身份验证,例如检测Session中是否保存有正确的用户名,当没有时会将当前会话引入到站点的登录页面。

自定义的HTTPModule类中的代码如下

 

记得要在web.config文件中进行相应的注册

 

登录页面的代码如下

还有点相关的内容需要提一下:这种方式的实现,了解Page的生命周期的网友可能很容易理解,页面的生命周期是个比较复杂的问题,这里不做深入的探讨,只是简单的给大家介绍下

 

方式之二利用抽象类BasePage

原理:每一个页面都会继承于系统的System.Web.UI.Page类,我们可以自己封装一个自己的BasePage类,把我们的身份验证代码写到BasePage类中,再让站点内部的每一个页面(站点内的登录页面除外)继承于自己的BasePage类,当然这个BasePage类先得继承于系统的System.Web.UI.Page类,这样后面的继承才有意义。

自定义的BasePage类代码如下

 

站点内部非登录页面都继承于BasePage类,代码如下

 

这样就很轻松的实现了以上的身份验证功能,希望能帮到网友们!微笑
原创粉丝点击