在很多MVC.NET项目中,我们需要创建和管理Cookie,可以定义CookieHelper类如下:
public static class CookieHelper
{
private static string UserName = "UserName";
public static void Clear(string cookieName)
{
var cookie = HttpContext.Current.Request.Cookies[cookieName];
if (cookie != null)
{
cookie.Expires = DateTime.Now.AddYears(-3);
HttpContext.Current.Response.Cookies.Add(cookie);
}
}
public static string GetCookieValue(string cookieName)
{
var cookie = HttpContext.Current.Request.Cookies[cookieName];
return cookie != null ? cookie.Value : string.Empty;
}
public static void SetCookieValue(string cookieName, string cookieValue, DateTime expires)
{
var cookie = new HttpCookie(cookieName)
{
Value = cookieValue,
Expires = expires
};
HttpContext.Current.Response.Cookies.Add(cookie);
}
public static void SetCookieValue(string cookieName, string cookieValue)
{
SetCookieValue(cookieName, cookieValue, DateTime.Now.AddDays(1));
}
public static void SetUserNameCookie(string userName)
{
SetCookieValue(UserName, userName);
}
public static string GetUserName()
{
return GetCookieValue(UserName);
}
public static IUser CurrentUserFromCookie()
{
var uName = GetUserName()??string.Empty;
return new CookieUser
{
UserName = uName
};
}
}
public class CookieUser : IUser
{
public string UserName { get; set; }
}
类似的方法,也可以管理Session