C#自定义简化Cookie类实例

Alice
Alice
发布时间:2026-10-14| 5人浏览过
原创

本文展示一个在C#中用于简化Cookie操作的自定义帮助类,包含获取值、设置过期时间及清除等核心方法。

背景与目标

在ASP.NET Web开发中,直接操作 HttpCookie 和 HttpContext 往往需要重复编写样板代码。为了方便使用,可以将其封装为一个静态工具类,提供统一的接口来执行常见操作,如安全地读写数据和管理生命周期。

准备条件

  • 运行环境:.NET Framework 或支持 System.Web 的 .NET Core/5+ 项目(注:在较新的 ASP.NET Core 项目中,Cookie 管理方式有所不同,以下示例主要针对传统 ASP.NET Web Forms/MVC)。
  • 命名空间引用:需确保引入了 System 和 System.Web 命名空间。

实现步骤

第1步:定义工具类结构

创建一个名为 CookieHelper 的静态类,位于 DotNet.Utilities 命名空间下,便于全局调用。

第2步:实现清除Cookie方法

通过修改过期时间为过去的时间点来触发浏览器删除机制。注意处理空引用情况:

using System;
using System.Web;

namespace DotNet.Utilities
{
 public class CookieHelper
 {
  /// <summary>
  /// 清除指定Cookie
  /// </summary>
  public static void ClearCookie(string cookiename)
  {
   HttpCookie cookie = HttpContext.Current.Request.Cookies[cookiename];
   if (cookie != null)
   {
    cookie.Expires = DateTime.Now.AddYears(-3);
    HttpContext.Current.Response.Cookies.Add(cookie);
   }
  }
 // ... 其他方法省略 ...
 } 
}

第3步:实现获取Cookie值方法

安全地从请求中读取指定键的值,若不存在则返回空字符串:

  /// <summary>
  /// 获取指定Cookie值
  /// </summary>
  public static string GetCookieValue(string cookiename)
  {
   HttpCookie cookie = HttpContext.Current.Request.Cookies[cookiename];
   string str = string.Empty;
   if (cookie != null)
   {
    str = cookie.Value;
   }
   return str;
  }

第4步:实现设置Cookie方法

提供两个重载版本:一个默认24小时过期,另一个允许自定义时间。建议使用显式创建 HttpCookie 对象以控制更精细的属性:

  /// <summary>
  /// 添加一个Cookie(24小时过期)
  /// </summary>
  public static void SetCookie(string cookiename, string cookievalue)
  {
   SetCookie(cookiename, cookievalue, DateTime.Now.AddDays(1.0));
  }

  /// <summary>
  /// 添加一个Cookie
  /// </summary>
  public static void SetCookie(string cookiename, string cookievalue,DateTime expires)
  {
   HttpCookie cookie = new HttpCookie(cookiename)
   {
    Value = cookievalue,
    Expires = expires
   };
   HttpContext.Current.Response.Cookies.Add(cookie);
  }
 }

完成判断

编译无错误,并在Controller或页面代码中尝试调用 CookieHelper.SetCookie(

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。