大家在做项目的时候都需要使用登录者的用户信息,几乎每一个页面,每一次操作都需要用户的信息;我这设计一个类,叫做UserSession,代码如下:
1.UserSession类:
/// </summary>
[Serializable]//序列化用于存入Session
public class UserSession
{
private string _loginLanguage = "CH";
private string _loginAccount = "";
private string _loginPwd="";
private string _loginDept = "";
private string _loginDspName = "";
private bool _loginIsOut = false;
public UserSession()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public static UserSession Current
{
get
{
return (UserSession)HttpContext.Current.Session["LoginSession"];//从Session中读取已经实例化的UserSession
}
}
/// <summary>
/// 登录帐号
/// </summary>
public string LoginAccount
{
get
{
return _loginAccount;
}
set
{
_loginAccount = value;
}
}
/// <summary>
/// 登录密码
/// </summary>
public string LoginPwd
{
get
{
return _loginPwd;
}
set
{
_loginPwd = value;
}
}
/// <summary>
/// 显示名称
/// </summary>
public string LoginDspName
{
get
{
return _loginDspName;
}
set
{
_loginDspName = value;
}
}
/// <summary>
/// 登录部门
/// </summary>
public string LoginDept
{
get
{
return _loginDept;
}
set
{
_loginDept = value;
}
}
/// <summary>
/// 登录语言
/// </summary>
public string LoginLanguage
{
get
{
return _loginLanguage;
}
set
{
_loginLanguage = value;
}
}
/// <summary>
/// 是否外出
/// </summary>
public bool LoginIsOut
{
get
{
return _loginIsOut;
}
set
{
_loginIsOut = value;
}
}
}
2.在Global.asax的Session_start中实例化UserSession并且存入Session
void Session_Start(object sender, EventArgs e)
{
// 在新会话启动时运行的代码
Session["LoginSession"] = new UserSession();
}
3.在登录的时候初始化UserSession的属性(用户的属性)
UserSession.Current.LoginAccount = “用户帐号”
UserSession.Current.LoginPwd = “用户密码”;
UserSession.Current.LoginDspName = “用户的显示名称”;
UserSession.Current.LoginDept = “用户的部门”;
UserSession.Current.LoginLanguage=“用户的语言”;
4,初始化以后可以在任何想使用用户信息的地方使用:
string userName=UserSession.Current.LoginDspName;
................