您的位置:首页 > 其它

客户端保存用户登陆信息

2009-01-14 10:03 399 查看
Code

using System;

using System.Collections.Generic;

using System.Text;

using Model;

using System.Web;

using IDAL;

namespace Common

{

public class Member

{

/// <summary>

/// lgoin_User

/// </summary>

private const string USER_LOGIN = "lgoin_User";

/// <summary>

/// 用户登陆,保存登陆信息

/// </summary>

/// <param name="admin"></param>

public static void SaveLoginUserInfo(string userName)

{

try

{

if (string.IsNullOrEmpty(userName)) return;

Admin admin = Factory.Factory.GetAdminIDAL().GetAdminByUserName(userName);

HttpContext.Current.Session.Add(USER_LOGIN, admin);

SetCookies(USER_LOGIN, admin.UserName);

}

catch

{

throw new Exception("登录信息保存失败!");

}

}

/// <summary>

/// 用户注销,清空登陆信息

/// </summary>

public static void SingOut()

{

if (HttpContext.Current.Session[USER_LOGIN] != null)

HttpContext.Current.Session.Remove(USER_LOGIN);

DeleteCookie(USER_LOGIN);

}

/// <summary>

/// 是否已登录

/// </summary>

public static bool IsLogon

{

get

{

return User != null;

}

}

/// <summary>

/// 登录用户id

/// </summary>

public static int UserId

{

get

{

if (User != null)

return User.Id;

return -1;

}

}

/// <summary>

/// 登录用户账号

/// </summary>

public static string UserName

{

get

{

if (User != null)

return User.UserName;

return "";

}

}

/// <summary>

/// 登录用户类型

/// </summary>

public static int UserType

{

get

{

if (User != null)

return User.Level;

return 0;

}

}

/// <summary>

/// 登录用户基本信息

/// </summary>

private static Admin User

{

get

{

if (HttpContext.Current.Session[USER_LOGIN] != null)

return (Admin)HttpContext.Current.Session[USER_LOGIN];

if (CookiesIsEx(USER_LOGIN))

{

string username = (string)GetValueFromCookies(USER_LOGIN);

IDAL.IAdminDAL iadmin = Factory.Factory.GetAdminIDAL();

return iadmin.GetAdminByUserName(username);

}

return null;

}

}

/// <summary>

/// 添加cookie

/// </summary>

/// <param name="cookisName">cookie名称</param>

/// <param name="value">值</param>

private static void SetCookies(string cookisName, string value)

{

HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies[cookisName];

Common.Encrypt(value);

if (cookie == null)

cookie = new HttpCookie(cookisName);

cookie.Path = "/";

cookie.Expires = DateTime.Now.AddMinutes(20);

cookie.Value = value;

HttpContext.Current.Response.AppendCookie(cookie);

}

/// <summary>

/// 删除cookis

/// </summary>

/// <param name="cookisName">cookis名称</param>

private static void DeleteCookie(string cookisName)

{

HttpCookie cookie = new HttpCookie(cookisName);

cookie.Path = "/";

cookie.Expires = DateTime.Now.AddDays(-1);

System.Web.HttpContext.Current.Response.Cookies.Add(cookie);

}

/// <summary>

/// 根据cookie名称获取值

/// </summary>

/// <param name="cookisName"></param>

/// <returns></returns>

private static object GetValueFromCookies(string cookisName)

{

return System.Web.HttpContext.Current.Request.Cookies[cookisName].Value;

}

/// <summary>

/// 是否存在Cookies

/// </summary>

/// <param name="cookisName"></param>

/// <returns></returns>

private static bool CookiesIsEx(string cookisName)

{

if (System.Web.HttpContext.Current.Request.Cookies[cookisName] == null)

return false;

return !(string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.Cookies[cookisName].Value));

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: