在Common中新建一个CookieHelper,全局调用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web; namespace Common {
public class CookieHelper {
/// <summary>
/// 设置cookie
/// </summary>
/// <param name="cookieName">cookie名称</param>
/// <param name="cookieValue">cookie值</param>
/// <param name="domain">作用域,为空就不写入作用域</param>
public static void SetCookie(String cookieName, String cookieValue, string domain) {
if (String.IsNullOrEmpty(cookieName) || String.IsNullOrEmpty(cookieValue)) return;
if (HttpContext.Current != null) {
HttpCookie cookie = new HttpCookie(cookieName, cookieValue);
if (domain.Length > 0) {
cookie.Domain = domain;
}
cookie.HttpOnly = true;
HttpContext.Current.Response.Cookies.Add(cookie);
}
}
/// <summary>
/// 设置cookie
/// </summary>
/// <param name="cookieName">cookie名称</param>
/// <param name="cookieValue">cookie值</param>
/// <param name="domain">作用域,为空就不写入作用域</param>
/// <param name="day">有效时间</param>
public static void SetCookie(String cookieName, String cookieValue, string domain, int day) {
if (String.IsNullOrEmpty(cookieName) || String.IsNullOrEmpty(cookieValue)) return;
if (HttpContext.Current != null) {
HttpCookie cookie = new HttpCookie(cookieName, cookieValue);
if (domain.Length > 0) {
cookie.Domain = domain;
}
cookie.HttpOnly = true;
cookie.Expires = DateTime.Now.AddDays(day);
HttpContext.Current.Response.Cookies.Add(cookie);
}
}
/// <summary>
/// 设置cookie过期
/// </summary>
/// <param name="cookieName">需要过期的cookie名称</param>
public static void ExpireCookie(String cookieName) {
if (String.IsNullOrEmpty(cookieName)) return;
if (HttpContext.Current != null) {
HttpCookie cookie = new HttpCookie(cookieName, string.Empty);
cookie.HttpOnly = true;
cookie.Expires = DateTime.Now.AddYears(-5);
HttpContext.Current.Response.Cookies.Add(cookie);
}
}
/// <summary>
/// 获取对应Cookie名称的值
/// </summary>
/// <param name="cookieName">Cookie 的名称</param>
/// <returns></returns>
public static string GetCookie(string cookieName) {
if (string.IsNullOrEmpty(cookieName)) return string.Empty;
if (System.Web.HttpContext.Current == null) return string.Empty;
if (System.Web.HttpContext.Current.Request.Cookies[cookieName] == null) return string.Empty;
else return System.Web.HttpContext.Current.Request.Cookies[cookieName].Value;
}
/// <summary>
/// 判断对应的Cookie是否存在
/// </summary>
/// <param name="cookieName">Cookie 的名称</param>
/// <returns></returns>
public static bool ExistCookie(string cookieName) { if (string.IsNullOrEmpty(cookieName) || System.Web.HttpContext.Current == null) return false;
if (System.Web.HttpContext.Current.Request.Cookies[cookieName] == null) return false;
if (System.Web.HttpContext.Current.Request.Cookies[cookieName].Value == null) return false;
return (System.Web.HttpContext.Current.Request.Cookies[cookieName].Value.Length > 0);
}
}
}

  

C# (Cookie)基本操作的更多相关文章

  1. Cookie 基本操作

    Cookie 基本操作 对于 Cookie 得常用操作有,存取,读取,以及设置有效期:具体可以参照 JavaScript 操作 Cookie 一文:但,近期在前端编码方面,皆以Vue为冲锋利器,所以就 ...

  2. session和cookie基本操作

    session的作用同cookie一样: 1.在不同页面使用同一数组 2.实现验证码,用户跟踪(个人觉得这个用到的其实还是1中的作用) session相对于cookie更加的安全 先来说一下cooki ...

  3. PHP cookie基本操作

    PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆 什么是cookie 服务器在客户端保存用户的信息,比如登录名,密码等 这些数据 ...

  4. 2.django笔记之缓存,session,cookie,ajax

    一.django缓存 1.缓存 缓存的意义在于把昂贵的计算结果保存起来一遍下次的访问,有缓存的站点的流程大概是这样子的: 给定一个url,检查页面是否在缓存中 如果在,返回缓存的页面 否则,生成该页面 ...

  5. 同顶级域名下 通过Cookie 跨域实现单点登陆

    Cookie对于web开发者而言真是一个小甜饼,因为它保留了用户的登录状态.但是当登陆站点在不同域名时就会出现问题了. 在Cookie规范上说,一个cookie只能用于一个域名,不能够发给其它的域名. ...

  6. cookie详解(含vue-cookie)

    今天看到一篇cookie的文章,写的特别详细,感谢 晚晴幽草轩 的分享,原文链接http://mp.weixin.qq.com/s/NXrH7R8y2Dqxs9Ekm0u33w 原文如下,记录到此供以 ...

  7. 详解Cookie纪要

    参考文档链接:http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651552892&idx=1&sn=126a1d32 ...

  8. 详解 Cookie 纪要(vue.cookie,jquery.cookie简化)

    今天看到一篇cookie的文章,写的特别详细,感谢 晚晴幽草轩 的分享,原文链接http://www.jeffjade.com/2016/10/31/115-summary-of-cookie/ 原文 ...

  9. js中的cookie使用和vue-cookie的使用

    在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cookie规范定义了服务器和客户端交互信息的格式.生存期.使用范围.安全性. 在JavaScrip ...

随机推荐

  1. hdu 6058

    \(f(l,r,k)=\)区间[\(l\),\(r\)]的第k大. \(\sum_{l=1}^{n}{\sum_{r=l}^{n}{f(l,r,k)}}\) 参考题解,claris大佬题解.赛后AC. ...

  2. hdu-5738 Eureka(组合计数+极角排序)

    题目链接: Eureka Time Limit: 8000/4000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Others) Pr ...

  3. Messes in Reading Source Coding of SSD

    这里记录在学习SSD源码过程中用到的相关内容 keras.applications.imagenet_utils.preprocess_input(): 用来将读入的原始图片张量转换成为需要Image ...

  4. ubuntu 下编译安装ceph

    git clone --recursive https://github.com/ceph/ceph.git  cd ceph/  sudo apt-get install libtool   sud ...

  5. Mybatis一二级缓存的理解

        频繁的数据库操作是非常耗费性能的(主要是因为对于DB而言,数据是持久化在磁盘中的,因此查询操作需要通过IO,IO操作速度相比内存操作速度慢了好几个量级),尤其是对于一些相同的查询语句,完全可以 ...

  6. 注销ie中的ActiveX插件

    最新在C#下开发ActiveX控件,遇到一个问题,就是在调试的时候,ActiveX就已经注册在了调试目录下,这样即使安装这个插件,也无法注册到ActiveX的安装目录下.为了解决这个问题,需要注销下调 ...

  7. opencv MatExpr MatOp

    opencv提供了很多Mat的操作,其中涉及到两个重要的类:MatOp和MatExpr C++: MatExpr abs(const Mat& m) C++: void absdiff(Inp ...

  8. 洛谷1601 A+B Problem(高精) 解题报告

    洛谷1601 A+B Problem(高精) 本题地址:http://www.luogu.org/problem/show?pid=1601 题目背景 无 题目描述 高精度加法,x相当于a+b pro ...

  9. 如何用纯js做一个大富翁游戏

    下面这张是效果图: 先立个flag,一个星期内把这个坑填了

  10. 解读大内老A的《.NET Core框架本质》

    老A说的一句话让我很受启发,想要深入了解框架,你要把精力聚焦在架构设计的层面来思考问题.而透彻了解底层原理,最好的笨办法就是根据原理对框架核心进行重建或者说再造.看起来没有捷径,也是最快的捷径. 题外 ...