遇到这个问题,看呢很多的文章,遇到一些迷惑的地方。再次请教各位。
1,session过时问题。
session过时自动跳转,不想在每一个页面都写if(session["vipusers"]==null){....},就跳转(项目做完呢,后台差不多100个页面,加的累死人而且烦),
(1)有人建议使用Global.asax里面写(从来没用过)--知道的说一声,在这先谢呢。
(2)也有人建议在使用session的地方统一调用一个方法(比较偏向于这个)--我准备在别的层里面写一个方法(静态的)这样来获得session里面所需要的值(不知道行不行,而且对于静态的我有些迷惑)
(3)对于问题2的补充,可以使用一个继承页面啥(没用过,听过)--有相关好的文章的地址推荐一下,谢呢。
2,关于静态方法的问题,一真很迷惑1,在项目中一个地方要多次调用数据库,我想先使用一个静态方法先读数据库把需要的字段放到一个数组里面去,在需要的地方调用这个静态方法,从而避免多次读数据库而直接从这个数组里面取出来。
迷惑的地方是,
(1)项目发布到网上去之后,第一个人请求页面,就先执行这个静态方法,如果第二个人呢,会不会不会再执行,也就是说,如果有人在向数据库这个表里面添加呢字段,在重新请求时候,这个静态方法会不会在重新执行呢(数据更新)。--谢呢。
知道点的就说点,多多益善。谢呢~!
如果有一些好的文章啥的,推荐一下,我去学习(跟这有关的)。

解决方案 »

  1.   

    response.redirect("~/login.aspx");
      

  2.   

    1、写一个基类,继承System.Web.UI.Page,然后项目中所有的页面都继承此基类,
    在这个基类重定
    protected override void OnInit(EventArgs e)
    {
    //在这个里面进行权限查检
    CheckRight();
    }
      

  3.   

    1,session过时问题。
    写一个Page类,继承之不就好了
      

  4.   

    http://www.cnblogs.com/kyo1028/archive/2006/02/22/335300.html
      

  5.   

    http://topic.csdn.net/u/20091214/13/6cd96ef5-3d18-4255-a440-d16ef6503d37.html 你的第二个问题 的正确做法是 应用缓存可使用asp.net 自带的Cache
      

  6.   

    过BasePage或IHtttpMoudle实现 
    public class BasePage : System.Web.UI.Page 
        { 
          public  BasePage() 
          {       } 
                protected override void OnInit(EventArgs O) 
          { 
              if (base.Session["UserId"] == null || base.Session["UserId"].ToString().Equals("")) 
              { 
                  Response.Redirect("~/Error.aspx"); 
              } 
          } 
        } 
    数据库缓存或依赖缓存
      

  7.   

    class AuthenticModule:IHttpModule 
                    { 
                        public void Dispose(){} 
                        public void Init(HttpApplication context) 
                        { 
                            context.PreRequestHandlerExecute += new EventHandler(context_PreRequestHandlerExecute); 
                        } 
                        void context_PreRequestHandlerExecute(object sender, EventArgs e) 
                        { 
                            HttpApplication ha = (HttpApplication)sender; 
                            string path = ha.Context.Request.Url.ToString(); 
                            int n = path.ToLower().IndexOf("Login.aspx"); 
                            if (n == -1) 
                            { 
                              if (ha.Context.Session["user"] == null)                    { 
                                    ha.Context.Response.Redirect("Login.aspx?source=" + path); 
                                } 
                            } 
                        } 
                    }