Color Weblog

学习任何东西都没有捷径的,汗水、态度、方法才是需要考虑的。

博客园 首页 新随笔 联系 订阅 管理
在Form验证中,如果用户没有登陆,便会跳到一个登录页中去,然后进行登录,登录完毕之后,会跳会到原来的页面上,但是Form验证唯一不爽的要设好各个目录的权限。所以我写了一个类,可以实现Form验证,实际上原理也很容易,只是将转发的URL放在Request的要求中,转发给登录页面,当登陆页面验证完合法登录后,就将URL重定向回原来的URL

#region 权限矩阵
   public class AccessMatrix
   {
       private System.Web.UI.Page _page;
       private LoginUser user;
       public AccessMatrix(System.Web.UI.Page page)
       {
           _page = page;
       }
       public void CheckBasicView()
       {
           try
           {
               user = (LoginUser)_page.Session["LoginUser"];
               if (!user.BasicView)
                  _page.Response.Redirect("Login.aspx?url="+HttpUtility.HtmlEncode(_page.Request.RawUrl));
               
           }
           catch
           {
               _page.Response.Redirect("Login.aspx?return="+HttpUtility.HtmlEncode(_page.Request.RawUrl));
           }
       }
   }
   #endregion

在各个需要验证的页面中的Page_Load事件中写上

AccessMatrix matrix=new AccessMatrix()
matrix= CheckBasicView();

其中user.BasicView是一个bool量,表示查看基本视图的权限。
在Login.aspx中

if (登录成功)
{
     if (Request[“return“] != null)
     Response.Redirect(Request[“return“] );
}

posted on 2004-03-04 22:47  popcode  阅读(682)  评论(0)    收藏  举报