利用.net的内部机制在asp.net中实现身份验证
知识点:
在ASP.NET中,任何页面都是继承于System.Web.UI.Page,他提供了Response,Request,Session,Application的操作.在使用Visual Studio 创建asp.net页面时,系统会自动为你创建一个继承与System.Web.UI.Page的类与页面文件关联.
public partial class newPage:System.Web.UI.Page { protected void Page_Load(Object sender,EventArgs e) { } }
正文:
1: 在项目中添加一个类文件(checkUser.cs),这个文件需要继承System.Web.UI.Page,然后在这个文件里统一设置权限,然后其他文件继承它
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public class checkUser : System.Web.UI.Page //需要继承Page类 { public checkUser() { this.Load += new EventHandler(checkUser_Load); //加一个事件 } void checkUser_Load(object sender, EventArgs e) { if (Session["UserInfo"] == null) { Response.Write("<script type='javascript'>alert('您的登录无效!');</script>"); Response.Redirect("~/身份验证/login.aspx"); //使用~来保证无论在什么目录层次进行身份验证都能跳转到后台登录页面 } } }
2:对于后台任何需要进行身份验证的页面,只需将它更改为继承自checkUser类即可,这样这些类中就不需要编写任何身份验证的代码了。
public partial class 身份验证_userCenter : checkUser //需要继承checkUser { protected void Page_Load(object sender, EventArgs e) { Response.Write("欢迎光临用户中心!"); } }
以下方法参考周公博客, http://www.cnblogs.com/zhoufoxcn/archive/2009/02/11/2515680.html