收拾那掉了一地的session吧

 

 比如多个页面有如下多个session,本来可能是如下面这样的:

Session["UserId"] = 1;
Session["UserName"] = "nic";
Session["GroupId"] = 1;
Session["IsBlocked"] = false;

这样比较不方便管理。看着也乱,可以这样,先建一个Model,把要用到的属性都放进去,再保存到model里。要用的时候直接从model里点一下就取出来了。如下:

//建一个用于存session的model,这个一般放在model层中
public class UserInfoModel
{
    public int UserId{get;set;}
    public string UserName{get;set;}
    public string GroupId{get;set;}
    public bool IsBlocked{get;set;}
}
    
//我一般会建一个PageBase.cs作为基类,把以下放进去,所有页面都继承这个类,然后在这里作身份验证,
//保存初始化时把用户登录的一些基本信息等等。
    
//从数据中读取以下数据保存到session中
if(Session["UserInfoModel"] == null)
{
    UserInfoModel userInfoModel = new UserInfoModel();
    userInfoModel.UserId = 1;
    userInfoModel.UserName = "nic"; 
    userInfoModel.GroupId  = 1;// Get..
    userInfoModel.IsBlocked = false;
    Session["userInfoModel"] = userInfoModel;
}
    
//使用,先把Session转回去。这边用as转换避免出错。
UserInfoModel userInfoModel = Session["userInfoModel"] as UserInfoModel;
    
if(userInfoModel != null)
{
    //比如给页面上的一个label赋值
    this.lblUserName.Text = userInfoModel.UserName;
    //...
}

 

PHP可以用数组来代替。

类别:DotNET   阅读(0)   评论(0)    发表时间:2013-01-02 20:56  星期三

评论区

发表评论

        姓名:
邮箱|网站:
        内容:

  (可按Ctrl+Enter提交)