笨?
这种角色权限 正常情况下都是用session啊
就算你不用session,而你想获得用户的信息,
因为信息在数据库里,当然要访问数据库啊  看了半天 不知道LZ 到底是哪里有问题~ 汗~

解决方案 »

  1.   

    对对,问题我可能没说清楚,比如说用session吧,我登陆后用了一个session["UserID"],作为我的身份,可是当我访问某个页面时,需要获取我的年令值,应该怎么作,把session["UserID"]作为查询条件去用户信息表中查找年令字段的值么?这样会不会经常访问数据库呀?我今天看它们好像说有个方便的方法:是用户登陆时就把用户所有的信息全部读出来,放到一个东西中,好像是实体类什么的,然后到哪页要用时直接.年令就行了??
      

  2.   

    有个办法就是在用户登录时从数据库取出该用户的所有信息赋值给你声明的(DataSet)(Session[KEY_CACHELOGINUSER]),这样你在哪个页面都能得到该用户的登录信息了。
      

  3.   

    Session["UserID"],因为UserID唯一,所以Session["UserID"]唯一,这个如果有其他用户登录也不影响啊 
      

  4.   

    噢对了,还有如果a.aspx这页我不想让游客访问是不是这么写:
     protected void Page_Load(object sender, EventArgs e)
        {
            if(Session["UserID"] != null)
              {
                Response.Write("你可以访问");  
              }
           else
              {
                Response.Write("你没权访问"); 
              }
        }
      

  5.   

    是这样的 如果你需要经常访问数据库获得用户信息的话 就可以一个类对象储存用户信息然后将对象放到Session中共其他页面调用对象中的信息
      

  6.   

    (DataSet)(Session[KEY_CACHELOGINUSER])这是5楼朋友说的方法,我觉得很好,请问哪位朋友教教我这个怎么用!
      

  7.   

    12楼的朋友,你说的好像很有道理,就是把这个装载着用户信息的类对象放到session中,可是我是这新手,道理能明白,能不能指点下具体怎么写,怎么调用,最好举个简单的写法!
      

  8.   

    要不等用户登入了,你就把所有信息都写到他cookie里去,到时候要啥拿啥就行了,最多客户端cookie比较多
      

  9.   

    我现在自己是这么做的用户登陆后就获得一个Session["UserID"],然后我定义一个类Str.cs,这个类中我定义一个方法如下:
        public static string ReturnFieldValue(string table, string field, string efield, string e)
        {
            SqlConnection con = DB.creatCon();
            con.Open();
            SqlCommand cmd = new SqlCommand("select " + field + " from " + table + " where " + efield + "='" + e + "'", con);
            string str = cmd.ExecuteScalar().ToString();
            con.Close();
            return str;
        }
    然后我来到了hehe.aspx页面,这个页面下我需要提供用户的性别,所以我就么这写:
    string sex = ReturnFieldValue("User","SEX","ID",Session["UserID"])
    姓别就是sex的值,大家觉得这样做说得过去么,能将就么?
    要取值时我就赋4个参数,分别为用户表名,字段名,查旬条件字段,和查旬条件值。这要是页面需要一二个我觉得还能将就,可是要我把所有用户信息都列出来,我不是每个都得调用一下ReturnFieldValue()函数来访问数据库吧!这下大家明白我想要那种方法的心情和概念了吧!。
      

  10.   

    我上网上看了一下,还有人这么做的?不过有回复说不见意这么做,真是搞不懂,我觉得这样也不错呀?
    就是用户登陆后信息全放到dataSet中,然后把它放到Session中,我觉得好像就是5楼说的那个意思,要是这样也不错呀,为什么有人说不见意这么做呢?
    Session["xxx"] = dataset
    DataSet ds = (DataSet)Session["xxx"];
    ---------------------------------------------
    到现在有三种方法了,不过好像都不理想或者说是好像是歪门斜道,到底真正正确的方法是什么呢,这么常用的问题没有人考虑过么,我自己亲自做网站的人100%会遇到这种情况,希望大家讨论帮助!下面看看到现在的三种方法:
    1、把用户信息存放到实体类中(这种做法,具体步骤我不会,待解....)
    2、把用户信息存放到DataSet内存数据库中(这种做法,珍体步骤还能将就写下,只是有评论说不见意用这种方法...原因未知!)
    3、只通过Session["UserID"]做为查询条件来访问数据库,查到想要的字段信息的值(这种方法可行,但如果页要要提供大量用户信息,如用户名、密码、年龄、性别、生宵、爱好、注册时间、出生年月等更多用户信息的话可能要频繁访问数据库占用大量资源,突然想到可以一次全查出,但还是觉得不得劲)总而言之,看谁能找到这样的方法(我想100%有):
        只在用户点击登陆的时候,获取用户所有信息资料,放在一个全局变量(这个变量是一个具有唯一性的,就和Session一样的变量)中,然后在任何地方只要想调用该用户的某个信息时,直接取出就好!
      

  11.   

    你在登陆后, 把所有信息 都绑定到session上, 
    然后在以后的界面里
    直接取相应数据的session值 
    这样就好了
    这样只要登陆的时候读取数据库信息
    以后就不用了
      

  12.   

    DataSet也只不过是把数据由硬盘放到内存中
    只是加快读取速度
    照样还是要读取的啊