原来的网站是用session保存的用户类,现在要改成cookie,请问大家如何用cookie保存用户的类啊?
解决方案 »
- 提问一个菜鸟问题
- Asp.net的精髓----------控件!
- 求ASP字段约束
- wap的问题,关于强制转换成WML 后的问题!
- 关于装箱跟拆箱的问题
- (解决后帖子加到100分)写个控件,在TextBox的基础上加一个onkeyup事件?
- asp.net下拉菜单问题
- 提个小问题,散分50
- 小女子问个问题
- 高手帮帮忙,为什么打开:http://www.linchh.com/asptest/dispcalendar.aspx 总是提示下载,而在我本地机测试确不会。一传到服务器就是
- Gridview绑定时按照条件设置模板列按钮的状态
- mvc返回一个Ienumerable<student> studnets的集合,用view(studnet),还是json(studnet)操作?
using System;
using System.Web;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Text;
/// <summary>
/// 用户的信息
/// </summary>
public class UserInfo
{
#region 当前用户信息 /// <summary>
/// 当前用户的信息
/// </summary>
public static class CurrentUser
{
/// <summary>
/// 用户id
/// </summary>
public static int UserID
{
get
{
if (HttpContext.Current.Request.Cookies["UserID"] != null)
{
return Convert.ToInt32(HttpContext.Current.Request.Cookies["UserID"].Value);
}
return 0;
}
set
{
HttpContext.Current.Response.Cookies["UserID"].Domain = GetHostName();
HttpContext.Current.Response.Cookies["UserID"].Value = value.ToString();
}
} /// <summary>
/// 用户名
/// </summary>
public static string Name
{
get
{
if (HttpContext.Current.Request.Cookies["UserName"] != null)
{
return HttpUtility.UrlDecode(HttpContext.Current.Request.Cookies["UserName"].Value.ToString());
}
return "";
}
set
{
HttpContext.Current.Response.Cookies["UserName"].Domain = GetHostName();
HttpContext.Current.Response.Cookies["UserName"].Value = HttpUtility.UrlEncode(value.ToString());
}
} /// <summary>
/// 登录名
/// </summary>
public static string LoginID
{
get
{
if (HttpContext.Current.Request.Cookies["LoginID"] != null)
{
return HttpUtility.UrlDecode(HttpContext.Current.Request.Cookies["LoginID"].Value.ToString());
}
return "";
}
set
{
HttpContext.Current.Response.Cookies["LoginID"].Domain = GetHostName();
HttpContext.Current.Response.Cookies["LoginID"].Value = HttpUtility.UrlEncode(value.ToString());
}
} /// <summary>
/// 上次登录时间
/// </summary>
public static DateTime LastLoginDate
{
get
{
if (HttpContext.Current.Request.Cookies["LastLoginDate"] != null)
{
return SafeConvert.ToDateTime(HttpContext.Current.Request.Cookies["LastLoginDate"].Value);
}
return DateTime.MinValue;
}
set
{
HttpContext.Current.Response.Cookies["LastLoginDate"].Domain = GetHostName();
HttpContext.Current.Response.Cookies["LastLoginDate"].Value = value.ToString();
}
} /// <summary>
/// 用户角色
/// </summary>
public static string RoleName
{
get
{
if (HttpContext.Current.Request.Cookies["RoleName"] != null)
{
return HttpUtility.UrlDecode(HttpContext.Current.Request.Cookies["RoleName"].Value);
}
return "";
}
set
{
HttpContext.Current.Response.Cookies["RoleName"].Domain = GetHostName();
HttpContext.Current.Response.Cookies["RoleName"].Value = HttpUtility.UrlEncode(value.ToString());
}
}
/// <summary>
/// 用户角色
/// </summary>
public static string RoleCode
{
get
{
if (HttpContext.Current.Request.Cookies["RoleCode"] != null)
{
return HttpUtility.UrlDecode( HttpContext.Current.Request.Cookies["RoleCode"].Value);
}
return "";
}
set
{
HttpContext.Current.Response.Cookies["RoleCode"].Domain = GetHostName();
HttpContext.Current.Response.Cookies["RoleCode"].Value = HttpUtility.UrlEncode(value.ToString());
}
} /// <summary>
/// 当前页面URL,用于点击刷新按钮返回到原页面...
/// </summary>
public static string CurrentPageURL
{
get
{
if (HttpContext.Current.Request.Cookies["CurrentPageURL"] != null)
{
return HttpContext.Current.Request.Cookies["CurrentPageURL"].Value;
}
return string.Empty;
}
set
{
HttpContext.Current.Response.Cookies["CurrentPageURL"].Domain = GetHostName();
HttpContext.Current.Response.Cookies["CurrentPageURL"].Value = value;
}
} //是否登录...
public static bool IsLogin()
{
return UserID>0 ? true : false;
}
public static void Clear()
{
UserInfo.CurrentUser.UserID = 0;
UserInfo.CurrentUser.Name = "";
UserInfo.CurrentUser.LoginID = "";
UserInfo.CurrentUser.LastLoginDate = DateTime.Now;
UserInfo.CurrentUser.RoleCode = "";
UserInfo.CurrentUser.CurrentPageURL = "";
}
} # endregion 当前用户结束 /// <summary>
/// 获取主机域名...
/// </summary>
/// <returns></returns>
private static string GetHostName()
{
string HostName = HttpContext.Current.Request.Url.Host.ToString(); //获取URL主机地址
string[] UserHost = HostName.Split(new Char[] { '.' });
if (UserHost.Length == 3)
{
HostName = string.Format("{0}.{1}", UserHost[1], UserHost[2]);
}
if (HostName == "localhost")
HostName = "";
return HostName;
}
}