c# HttpCookie操作,建立cookie工具类

HttpCookie 是一个在.NET Framework中用于管理和操作HTTP Cookie的类。它提供了一种方便的方式来创建、设置、读取和删除Cookie。

Cookie是一种在客户端和服务器之间传递数据的机制,用于跟踪用户的会话状态和存储用户相关的信息。它通常由服务器发送给客户端,并由客户端保存在浏览器中。

HttpCookie 类提供了以下属性和方法:

  1. Name: 获取或设置Cookie的名称。
  2. Value: 获取或设置Cookie的值。
  3. Expires: 获取或设置Cookie的过期时间。
  4. Domain: 获取或设置Cookie的域名。
  5. Path: 获取或设置Cookie的路径。
  6. Secure: 获取或设置一个布尔值,指示是否使用安全连接(HTTPS)发送Cookie。
  7. HttpOnly: 获取或设置一个布尔值,指示Cookie是否仅在HTTP请求中可见,而不允许客户端脚本访问它。
  8. SameSite: 获取或设置Cookie的SameSite属性,用于控制Cookie在跨站点请求中的发送行为。
  9. ToString(): 将HttpCookie对象转换为字符串表示形式。

通过使用HttpCookie类,开发人员可以轻松地创建和管理HTTP Cookie。它在Web应用程序中广泛应用,用于存储和传递与用户会话相关的数据。

以下是通过HttpCookie建立工具类的代码,可根据具体需求调整

using System;
using System.Web;namespace Wing.Framework.Utility
{/// <summary>/// Cookie帮助类/// </summary>public class Cookie{/// <summary>/// 取Cookie/// </summary>/// <param name="name"></param>/// <returns></returns>public static HttpCookie Get(string name){return HttpContext.Current.Request.Cookies[name];}/// <summary>/// 取Cookie值/// </summary>/// <param name="name"></param>/// <returns></returns>public static string GetValue(string name){var httpCookie = Get(name);if (httpCookie != null)return httpCookie.Value;elsereturn string.Empty;}/// <summary>/// 移除Cookie/// </summary>/// <param name="name"></param>public static void Remove(string name){Cookie.Remove(Cookie.Get(name));}public static void Remove(HttpCookie cookie){if (cookie != null){cookie.Expires = DateTime.Now;Cookie.Save(cookie);}}/// <summary>/// 保存Cookie/// </summary>/// <param name="name"></param>/// <param name="value"></param>/// <param name="expiresHours"></param>public static void Save(string name, string value, int expiresHours = 0){var httpCookie = Get(name);if (httpCookie == null)httpCookie = Set(name);httpCookie.Value = value;Cookie.Save(httpCookie, expiresHours);}public static void Save(HttpCookie cookie, int expiresHours = 0){string domain = Fetch.ServerDomain;string urlHost = HttpContext.Current.Request.Url.Host.ToLower();if (domain != urlHost)cookie.Domain = domain;if (expiresHours > 0)cookie.Expires = DateTime.Now.AddHours(expiresHours);HttpContext.Current.Response.Cookies.Add(cookie);}public static HttpCookie Set(string name){return new HttpCookie(name);}}
}

12

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/696961.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

万字干货-京东零售数据资产能力升级与实践

开篇 京东自营和商家自运营模式&#xff0c;以及伴随的多种运营视角、多种组合计算、多种销售属性等数据维度&#xff0c;相较于行业同等量级&#xff0c;数据处理的难度与复杂度都显著增加。如何从海量的数据模型与数据指标中提升检索数据的效率&#xff0c;降低数据存算的成…

parallels配置centos虚拟环境

parallels Desktop M1/M2芯片Parallels Desktop 19虚拟机安装使用教程&#xff08;超详细&#xff09;-CSDN博客 下镜像记得找和mac芯片匹配的 安装就选第一个centos7不要选第二个 安装有问题就选回退重启 parallel desktop 18/19安装centos7.2009教程_parallels desktop 19…

echarts多y轴样式重叠问题

1、主要属性设置 yAxis: [{//y轴1nameTextStyle: {align: "right",padding: 0}},{//y轴2nameTextStyle: {align: "left",padding: 0}},{//y轴3axisLabel: {margin: 50},nameTextStyle: {align: "left",padding: [0, 0, 0, 50]},axisPointer: {l…

Python Web开发记录 Day2:CSS

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 二、CSS1、CSS-初始入门①快速了解②CSS应用方式…

【C语言】sizeof()函数

前言 sizeof函数用于获取数据类型或变量在内存中所占的字节数。 sizeof函数返回的是编译时确定的值&#xff0c;不会计算动态分配的内存大小。 sizeof函数可以用于多种类型的数据&#xff0c;包括数组、指针、结构体、枚举等。 1.数组 int arr[5];printf("%zu ", siz…

文件上传与下载

文件上传与下载 1. 文件上传 为了能上传文件&#xff0c;必须将表单的 method 设置为 POST&#xff0c;并将 enctype 设置为 multipart/form-data 。 有两种实现文件上传的方式&#xff1a; 底层使用 Apache Commons FileUpload 包 底层使用 Servlet 3.1 内置的文件上传功能…

如何计算文件哈希值(MD5值)

生成文件hash值的用途 哈希值&#xff0c;即HASH值&#xff0c;是通过对文件内容进行加密运算得到的一组二进制值&#xff0c;主要用途是用于文件校验或签名。正是因为这样的特点&#xff0c;它常常用来判断两个文件是否相同。 比如&#xff0c;从网络上下载某个文件&#xff0…

MySQL主从同步

MySQL主从同步&#xff08;复制&#xff09;是一种数据复制技术&#xff0c;用于将数据从一个MySQL数据库&#xff08;称为“主”&#xff09;复制到另一个或多个MySQL数据库&#xff08;称为“从”&#xff09;。这个过程通常用于负载均衡、数据备份、灾难恢复和其他类似场景。…

C++ Primer Plus 笔记(持续更新)

编译器的正解 数据&#xff0b;算法程序 赋值从右向左进行 cin&#xff0c;cout的本质也是对象 类和对象的解释

centerOS docker搭建flowable,流程引擎

1、准备一个mysql数据库&#xff0c;库名为flowable 2、mysql驱动下载&#xff0c;下载地址为&#xff1a; https://mvnrepository.com/artifact/mysql/mysql-connector-java此处使用的是8.0.22版本的驱动&#xff0c;且数据库必须使用版本8&#xff0c;否则第二次启动报错 3、…

OpenAI文生视频大模型Sora概述

Sora&#xff0c;美国人工智能研究公司OpenAI发布的人工智能文生视频大模型&#xff08;但OpenAI并未单纯将其视为视频模型&#xff0c;而是作为“世界模拟器” &#xff09;&#xff0c;于2024年2月15日&#xff08;美国当地时间&#xff09;正式对外发布。 Sora可以根据用户…

samber/lo 库的使用方法:type

samber/lo 库的使用方法&#xff1a;type samber/lo 是一个 Go 语言库&#xff0c;提供了一些常用的集合操作函数&#xff0c;如 Filter、Map 和 FilterMap。 这个库函数太多&#xff0c;因此我决定按照功能分别介绍&#xff0c;本文介绍的是 samber/lo 库中type相关的函数。汇…

Redis中的AOF重写到底是怎么一回事

首先我们知道AOF和RDB都是Redis持久化的方法。RDB是Redis DB&#xff0c;一种二进制数据格式&#xff0c;这样就是相当于全量保存数据快照了。AOF则是保存命令&#xff0c;然后恢复的时候重放命令。 AOF随着时间推移&#xff0c;会越来越大&#xff0c;因为不断往里追加命令。…

哪些行业适合做小程序?零售电商、餐饮娱乐、旅游酒店、教育生活、医疗保健、金融社交、体育健身、房产汽车、企管等,你的行业在其中么?

引言 在当今数字化时代&#xff0c;小程序成为了各行各业快速发展的数字工具之一。它的轻便、灵活的特性使得小程序在多个行业中找到了广泛的应用。本文将探讨哪些行业适合开发小程序&#xff0c;并介绍各行业中小程序的具体应用。 一、零售和电商 在当今数字化的商业环境中&…

C++ RAII

RAII定义 RAII&#xff08;Resource Acquisition Is Initialization&#xff09;是C编程中的一种重要的资源管理技术。它的核心思想是&#xff1a;资源的获取应该在对象的构造阶段进行&#xff0c;而资源的释放则应该在对象的析构阶段进行。通过利用C对象的生命周期和析构函数…

C#之WPF学习之路(2)

目录 控件的父类 DispatcherObject类 DependencyObject类 DependencyObject 类的关键成员和方法 Visual类 Visual 类的主要成员和方法 UIElement类 UIElement 类的主要成员和功能 FrameworkElement类 FrameworkElement 类的主要成员和功能 控件的父类 在 WPF (Windo…

谷粒商城篇章9 ---- P248-P261/P292-P294 ---- 消息队列【分布式高级篇六】

目录 1 消息队列(Message Queue)简介 1.1 概述 1.2 消息服务中两个重要概念 1.3 消息队列主要有两种形式的目的地 1.4 JMS和AMQP对比 1.5 应用场景 1.6 Spring支持 1.7 SpringBoot自动配置 1.7 市面上的MQ产品 2 RabbitMQ 2.1 RabbitMQ简介 2.1.1 RabbitMQ简介 2…

什么是Elasticsearch SQL

什么是Elasticsearch SQL 一. 介绍二. SQL 入门 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 一. 介绍 Elasticsearch SQL 是一个 X-Pack 组件&#xff0c;允许针对 Elasticsea…

通俗易懂理解G-GhostNet轻量级神经网络模型

一、参考资料 原始论文&#xff1a;[1] IJCV22 | 已开源 | 华为GhostNet再升级&#xff0c;全系列硬件上最优极简AI网络 二、G-GhostNet相关介绍 G-GhostNet 又称为 GhostNetV1 的升级版&#xff0c;是针对GPU优化的轻量级神经网络。 1. 摘要 GhostNetV1 作为近年来最流行…

Leetcode 611.有效三角形的个数

题目 给定一个包含非负整数的数组 nums &#xff0c;返回其中可以组成三角形三条边的三元组个数。 示例 1: 输入: nums [2,2,3,4] 输出: 3 解释:有效的组合是: 2,3,4 (使用第一个 2) 2,3,4 (使用第二个 2) 2,2,3示例 2: 输入: nums [4,2,3,4] 输出: 4提示: 1 < nums…