1. 程式人生 > >.net core2.1 CookieHelper

.net core2.1 CookieHelper

/// <summary>
/// ** 描述:Cookie for .net core2.1
/// ** 創始時間:2018-11-19
/// ** 修改時間:-
/// ** 作者:lc
/// </summary>
public static class CookieHelper
{
/// <summary>
/// 設定本地cookie
/// </summary>
/// <param name="key">鍵</param>
/// <param name="value">值</param>
/// <param name="minutes">過期時長,單位:分鐘</param>
public static void SetCookies(string key, string value, int minutes = 30)
{
HttpContext.Current.Response.Cookies.Append(key, value, new CookieOptions
{
Expires = DateTime.Now.AddMinutes(minutes),
HttpOnly = true,// 設定為後臺只讀模式,前端無法通過JS來獲取cookie值,可以有效的防止XXS攻擊
Secure = true,//採用安全模式來傳遞cookie,如果設定為true,就是當你的網站開啟了SSL(就是https),的時候,這個cookie值才會被傳遞
IsEssential = true//是否強制儲存cookie,注意,這裡的強制 是針對於上面所講的內容的..也就是當用戶不同意使用cookie的時候,你也可以通過設定這個屬性為true把cookie強制儲存.
// MaxAge cookie的有效毫秒數,
//如果設定為負值的話,則為瀏覽器程序Cookie(記憶體中儲存),關閉瀏覽器就失效;如果設定為0,則立即刪除該Cookie。
});
}

/// <summary>
/// 刪除指定的cookie
/// </summary>
/// <param name="key">鍵</param>
public static void DeleteCookies(string key)
{
HttpContext.Current.Response.Cookies.Delete(key);
}

/// <summary>
/// 獲取cookies
/// </summary>
/// <param name="key">鍵</param>
/// <returns>返回對應的值</returns>
public static string GetCookies(string key)
{
HttpContext.Current.Request.Cookies.TryGetValue(key, out string value);
if (string.IsNullOrEmpty(value))
value = string.Empty;
return value;
}
}