博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

保存帐号信息通用类:


首先定义接口:

using System;

namespace SysClassLibrary.User
{
/// <summary>
/// IUserInfo 的摘要说明。
/// </summary>
public interface IUserInfo
{
string UserID
{
get;set;
}

string UserName
{
get;set;
}

string OrganID
{
get;set;
}

string RoleID
{
get;set;
}
}
}

yx
05.17 17:19



/*
 * class CookieUserInfo
 * 
 *使用Cookie保存帐号信息 ,调试时通常使用Cookie较好可防止因编译Session丢失
 * 
 */

using System;
using System.Web;

namespace SysClassLibrary.User
{
/// <summary>
/// CookieUserInfo 的摘要说明。
/// </summary>
public class CookieUserInfo : IUserInfo
{
public CookieUserInfo()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 帐号  [注意:这里的静态属性变量和静态变量是不一样的,静态变量为所有用户共享,而这里不是,这里是每个用户独立]
/// </summary>
public string UserID
{
get
{
return HttpContext.Current.Request.Cookies["UserID"].Value;
}
set
{
HttpContext.Current.Response.Cookies["UserID"].Value = value;

}
}

/// <summary>
/// 用户名称
/// </summary>
public string UserName
{
get
{
return HttpContext.Current.Request.Cookies["UserName"].Value;
}
set
{
HttpContext.Current.Response.Cookies["UserName"].Value = value;
}
}

/// <summary>
/// 所属机构(部门)ID
/// </summary>
public string OrganID
{
get
{
return HttpContext.Current.Request.Cookies["OrganID"].Value;
}
set
{
HttpContext.Current.Response.Cookies["OrganID"].Value  = value;
}
}

/// <summary>
/// 用户角色ID
/// </summary>
public string RoleID
{
get
{
return HttpContext.Current.Request.Cookies["RoleID"].Value;
}
set
{
HttpContext.Current.Response.Cookies["RoleID"].Value = value;
}
}
}
}
yx
05.17 17:20

/*
 * class SessionUserInfo
 * 
 *使用Session保存帐号信息 
 * 
 */

using System;
using System.Web;

namespace SysClassLibrary.User
{
/// <summary>
/// SessionUserInfo 的摘要说明。
/// </summary>
public class SessionUserInfo : IUserInfo
{
private SessionUserInfo()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

/// <summary>
/// 帐号  [注意:这里的静态属性变量和静态变量是不一样的,静态变量为所有用户共享,而这里不是,这里是每个用户独立]
/// </summary>
public string UserID 
{
get
{
return HttpContext.Current.Session["UserID"].ToString();
}
set
{
HttpContext.Current.Session["UserID"] = value;
}
}

/// <summary>
/// 用户名称
/// </summary>
public string UserName
{
get
{
return HttpContext.Current.Session["UserName"].ToString();
}
set
{
HttpContext.Current.Session["UserName"] = value;
}
}

/// <summary>
/// 所属机构(部门)ID
/// </summary>
public string OrganID
{
get
{
return HttpContext.Current.Session["OrganID"].ToString();
}
set
{
HttpContext.Current.Session["OrganID"] = value;
}
}

/// <summary>
/// 用户角色ID
/// </summary>
public string RoleID
{
get
{
return HttpContext.Current.Session["RoleID"].ToString();
}
set
{
HttpContext.Current.Session["RoleID"] = value;
}
}

}
}
yx
05.17 17:20

/* class CurrentUser
 * 
 * 经典类(通用): 保存登陆信息
 *  
 * 创建日期:2005-09-29 
 * 修改日期:2006-05-16
 * 创建者  :yx
 * 
 * 说明: 可以设置使用Session还是Cookie保存帐号信息
 */

using System;
using System.Web;
using System.ComponentModel;
using System.Data;


namespace SysClassLibrary.User
{
/// <summary>
/// 存取当前登录用户的信息以及对当前用户的相关操作
/// created by yanxin 2005-9-29
/// </summary>
public class CurrentUser
{
/// <summary>
///更改以确定使用Cookie还是Session
///说明:Cookie不安全,但不易丢失;Session安全,但易丢失,请酌情选择。开发过程中往往使用Cookie,它不会应为编译而丢失。
/// </summary>
private static IUserInfo SaveType = new CookieUserInfo();

/// <summary>
/// 不允许显示构造实例,这里全部为静态成员,因为到处都要用。
/// </summary>
static  CurrentUser()
{
}

/// <summary>
/// 帐号  [注意:静态属性和静态变量是不一样的,静态变量为所有用户共享,而这里不是,这里是每个用户独立,因为它读写的Session或Cookie。静态属性和静态方法功能一样。]
/// </summary>
public static string UserID
{
get
{
return SaveType.UserID;
}
set
{
SaveType.UserID = value;
}
}

/// <summary>
/// 用户名称
/// </summary>
public static string UserName
{
get
{
return SaveType.UserName;
}
set
{
SaveType.UserName = value;
}
}

/// <summary>
/// 所属机构(部门)ID
/// </summary>
public static string OrganID
{
get
{
return SaveType.OrganID;
}
set
{
SaveType.OrganID = value;
}
}

/// <summary>
/// 用户角色ID
/// </summary>
public static string RoleID
{
get
{
return SaveType.RoleID;
}
set
{
SaveType.RoleID = value;
}
}


/// <summary>
/// 所属机构(部门)Code 
/// 只读属性
/// </summary>
public static string OrganCode
{
get
{
string sql = "select strCode ID from tab_Organ where id='" + OrganID + "'";

return SysClassLibrary.DataAccess.ExecuteScalar(sql).ToString();
}
}

/// <summary>
/// 登陆成功后调用
/// 移植到其他项目可酌情更改
/// </summary>
/// <param name="userID"></param>
public static void SetUserInfo(string userID)
{
string sql = "select * from Sys_Users where UserID='" + userID  + "'";

DataTable dt = SysClassLibrary.DataAccess.dataTable(sql);

UserID = userID;//用户帐号
UserName = dt.Rows[0]["UserName"].ToString() ; //用户姓名
OrganID = dt.Rows[0]["Organ_ID"].ToString();   //机构ID
RoleID = dt.Rows[0]["Role_ID"].ToString();  //用户角色
}
/// <summary>
/// 更新当前用户在线时间
/// 移植到其他项目可酌情更改
/// </summary>
public static void UpdateLatestOnline()
{
string sql = "update sys_Users set OnlineLatest='{0}' where Online=1 and UserID='{1}'";
sql = string.Format(sql, DateTime.Now.ToString(), UserID);

SysClassLibrary.DataAccess.ExecuteSql(sql);
}
}
}