c#下cookie使用实例

c#实现cookie和session的登陆实例 里面包含BS和CS(软件/网页)2种的代码实例,希望能帮到大家 立即下载

 前段时间做考试系统中在线考试部分的功能,需要将考生在线时对试题的作答情况记录下来,参考了一下别人的做法,解决这个问题的思路有两个:一是在数据库中建表,用来保存考生作答时的答案,等考生交卷后再将临时保存考生答题信息的表的数据插入到记录考生答题情况的正式表中;二是不在数据库中用表保存考生交卷前对试题的作答情况,而是将考生交卷前的答题信息保存在文件中,等考生交卷后将记录考生答题情况文件中的信息写入数据库。第一种思路的优点是考生答题过程中的答题情况可以确保更好的正确性,缺点是不能排除与数据库连接发生错误从而导致不能将数据写入的可能,此外,另一个缺点是在线考试时考生较多,如果每答一题就对数据库操作一次,这样频繁地对数据库的访问和操作会增大数据库的压力,有可能导致严重的后果。第二种思路的优点恰恰就是能够避免出现第一种思路的缺点,缺点就是因为考试时答题情况的数据非常重要,记录在文件中则有被窜改的可能。综合考虑客户实施部署考试系统的环境和实际情况之后,决定采用第二种思路。针对第二种思路的缺点,鉴于其网络环境为内部局域网,考生使用的机器配备的输入输出设备有限等情况,其缺点还不足以有多大的概率发发生。而且,客户一再要求在线考试时候,要将一切影响考试正常进行的因素降到最低,尽量减少对数据库的访问,权衡之后决定采用第二种思路。从第二种思路出发,我采用cookie文件来临时保存考生的答题信息这一做法。由于之前没有尝试过这种做法,所以先到网上找了一大通资料,先了解了解。从最初的了解到组后将功能实现,花了大概两三天时间。走了不少弯路,故将其过程记录下,以免日后遇到同样的问题重蹈覆辙。
   采用该方法,直至最后交卷,将cookie文件中保存的考生答题信息写入数据库,其优化和合理的流程是:考生登录->创建cookie文件->考生答题->更新cookie文件->继续答题->更新cookie文件->交卷->获取cookie文件答题信息->写入数据库(同时将获取的数据以xml格式文件上传到服务器以备后用)。在这个过程中,对于cookie文件的操作是重点,因为它记录的信息至关重要,更新cookie文件时必须考虑到考生作答的试题是之前就已经在cookie文件里有记录还是第一次对该题作答,如果是第一次作答,则在原cookie文件中加上作答信息即可;如果之前就已经作答过,现在来修改,则必须在cookie文件中找出保存在cookie文件中对应试题的信息进行更新,因为考生每作答一次就必须对cookie文件进行更新,所以特将对cookie文件的更新写成一个方法,这样可以重复调用。
   所有的思路和步骤都已经清晰,代码则就是水到渠成的事了,下面是更新cookie的最重要部分代码:
    /// <summary>
    /// 更新cookie文件内容
    /// </summary>
    private void UpdateCookie()
    {
        // 往cookie集合中增加答题信息
        int c_timulx = Convert.ToInt32(ViewState["c_timulx"]);// 题目类型
        string c_bianhao = Convert.ToString(ViewState["c_bianhao"]);// 试题编号
        string cookieID = ViewState["cookieID"].ToString();
        string daan = this.GetDaan(c_timulx);// 获取考生答案
        // 获取原cookie文件中的内容
        string oldCookieValue = "";
        if (Request.Cookies[cookieID].Value != null)
        {
            oldCookieValue = Request.Cookies[cookieID].Value;
        }
        // 如果原cookie文件中已经存在当前题的答题信息,则取出原cookie文件中的当前题的信息,进行修改
        string newCookieValue = "";// 新cookie文件的内容
        string newAnswer = "|" + c_timulx.ToString() + "," + c_bianhao;// 当前题在原cookie文件中的内容
        if (oldCookieValue.Contains(newAnswer))
        {
            // 删除原cookie文件
            HttpCookie oldCookie = Request.Cookies[cookieID];
            oldCookie.Expires = DateTime.Now.AddHours(-1);
            Response.Cookies.Add(oldCookie);
            // 组装新cookie文件的内容
            string[] temp = oldCookieValue.Split(''|'');
            foreach (string s in temp)
            {
                string[] tempDaan = s.Split('','');
                string element1 = tempDaan[0];//
                string element2 = tempDaan[1];
                string element3 = tempDaan[2];
                if (c_timulx.ToString() == element1 && c_bianhao == element2)// 如果是编辑曾在cookie中有答案保存的题目
                {
                    newCookieValue = oldCookieValue.Replace("|" + element1 + "," + element2 + "," + element3, "|" + c_timulx.ToString() + "," + c_bianhao + "," + daan);
                }
            }
        }
        else// 如果原cookie文件中不存在当前题的答题信息,则往原cookie文件中添加当前题的答案
        {
            // 删除原cookie文件
            HttpCookie oldCookie = Request.Cookies[cookieID];
            oldCookie.Expires = DateTime.Now.AddHours(-1);
            Response.Cookies.Add(oldCookie);
         &nbsp;  // 组装新cookie文件的内容
            newCookieValue = oldCookieValue + "|" + c_timulx.ToString() + "," + c_bianhao + "," + daan;
        }
        // 组成新的cookie文件内容,创建cookie对象
        HttpCookie objcookie = new HttpCookie(cookieID, newCookieValue);
        // 设置cookie文件的生命周期
        DateTime now = DateTime.Now;
        TimeSpan ts = new TimeSpan(2, 0, 0);// 生命周期设为2个小时
        objcookie.Expires = now + ts;
        // 设置cookie采用SSL传送方式
        //objcookie.Secure = true;
        Response.Cookies.Add(objcookie);
    }

 

 

C#写入与读取Cookie C#.Net实例代码 立即下载

相关推荐

Cookie登录记录用户账号信息

NULL 博文链接:https://caleb-520.iteye.com/blog/870243

C# 使用HttpWebRequest Post提交数据,携带Cookie和相关参数示例

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Configuration; using System.Data.SqlClient; using System.Data; using Sy

深南大道 2万+

QSPI Flash的原理与QSPI时序的Verilog实现

本节主要是讨论QSPI(Quad SPI,四线SPI总线)的相关内容。我的开发板上有一片型号是W25Q128BV的Quad SPI Flash存储器,本文将以它为例子来说明QSPI操作的一些内容。

Go Forward Forever! 4166

C#使用Cookie方法

C#使用Cookie方法 Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样...

dhpiy86426的专栏 585

星辰超级智能体TeleClaw桌面版深度体验:央企出品的本地AI生产力助手

中国电信星辰超级智能体TeleClaw桌面版是一款本地化AI生产力助手,主打数据安全、自主高效和深度协同。作为程序员,作者实测其核心功能包括本地数据处理、长期记忆、定时任务和代码开发辅助,特别适合敏感数据处理和日常办公自动化。相比在线AI工具,TeleClaw在数据安全、合规性和自动化能力方面优势明显,但技能生态和响应速度仍有提升空间。总体评价为务实高效的本地AI助手,尤其适合对数据安全有要求的企业用户。

研究中.... 1355

Cadence IC618与Spectre231安装:环境变量与License配置详解

在Linux系统中部署Virtuoso等EDA工具时,环境变量与License管理是决定工具能否顺利启动的核心环节。环境变量决定了系统如何找到工具二进制文件以及工具如何定位自身资源,而License则通过FlexLM授权机制控制工具的使用权限。理解PATH、CDS_ROOT、CDS_LIC_FILE等关键变量的作用,掌握lmgrd服务与lmstat验证方法,能显著减少安装后启动失败的概率。无论是学生初装Cadence IC618与Spectre231,还是实验室工作站需要搭建可用的模拟设计环境,理顺环境变量

weixin_29192365的博客 370

C# WebClient登录与下载文件,带cookie

public class WebClientEx : WebClient { private CookieContainer cookie = new CookieContainer(); protected override WebRequest GetWebRequest(Uri address) { WebRequest request = base.GetWebRequest(a.

liangyely的博客 1312

数据分析(二):学生成绩预测分析报告

表1 特征变量描述变量描述school学生的学校sex学生的性别age学生的年龄address学生的家庭住址类型famsize家庭规模Pstatus父母同居状况Medu母亲的教育Fedu父亲的教育Mjob母亲的工作Fjob父亲的工作reason选择学校的理由guardian学生监护人traveltime从家到学校的时间studytime每周学习时间failures过去的类失败次数schoolsup额外的教育支持famsup家庭教育支持。

m0_73963149的博客 4416

C# Cookie跨域实例

1)站点1,创建Cookie using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebApplication1 { public parti

czh4869623的专栏 3879

从透射谱到能量分布:用Rsoft破解光纤光栅耦合模式的3个关键技巧

本文面向光通信工程师与研究者,分享了利用Rsoft软件深入分析光纤光栅耦合模式的三个关键技巧。通过配置场监视器观察XY截面能量分布、利用传播动画追踪动态过程,并结合模式求解器精准判定相位匹配,帮助用户超越透射谱分析,直观可视化能量从纤芯到包层的耦合与流动,从而优化器件设计。

weixin_29290963的博客 421

AG16K MCU ARM Cortex M3

其中,Input文件为Keil生成的mcu程序文件,输出为合成后的存储格式Bin文件,Program address 为上方表格中“程序运行 RAM 地址(4bytes)”,即 Keil 中设置的程序运行地址。其中 MCU 程序的地址,根据 mcu.ip 中设置的 FLASH_BIAS 进行设置。AG16K MCU 的 FPGA 工程中,需调用 alta_mcu_m3 的硬核 IP,包含在 alta_sim.v 的库文。Quartus II。//MCU 程序在 FLASH 中存放的首地址。

Embeded_FPGA的博客 1806

【C# 功能总结 7】 C# 页面传值 Cookie

C# 页面传值 Cookie

u010117029的博客 958

YOLO11改进 - 卷积Conv | StripBlockStripBlock大条带卷积块,通过顺序条带卷积捕获方向性长程依赖,强化高长宽比目标特征提取 | AAAI 2026

本文介绍了面向高纵横比目标检测的条带卷积模块——StripBlock,适用于遥感、船只、车道等细长结构目标的特征增强。该方法先通过 `5×5` 深度卷积提取局部空间信息,再利用 `1×19` 与 `19×1` 的正交长条卷积分别建模横向和纵向长程依赖,最后通过 `1×1` 卷积生成空间注意力权重,并以逐元素门控方式重标定输入特征。我们将 StripBlock 成功集成进 YOLO11,在检测头的多尺度特征层中引入条带式空间建模能力,从而增强模型对细长目标和复杂遥感场景的定位与识别效果。

魔改工程师的博客 234

Cookie--c#.net深入研究实例

public class Cookies ...{                       private HttpCookie myCookie = null;        public Cookies(string v_id, System.Web.UI.Page v_page) ...{            try ...{                if (v_page.R

淡泊以明志,宁静以致远. 794

生产环境中redis的SCAN命令如何替代KEYS命令?

本文介绍了使用SCAN命令替代KEYS的完整方案。SCAN通过游标分批迭代,避免KEYS命令遍历整个键空间导致的阻塞风险。文章详细说明了SCAN的基础语法、迭代流程和Java实现示例,强调必须关闭Cursor避免连接泄漏。针对生产环境,提供了COUNT参数调优、客户端去重、集群模式适配等优化建议,并列举了典型错误场景。SCAN通过分批次迭代和游标管理,可安全实现高性能键空间遍历。全文150字。

DN金猿的博客 179

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

通过COM来获取指定url的Cookie(转载)

1usingSystem; 2usingSystem.Runtime.InteropServices; 3usingSystem.Text; 4usingSystem.Net; 5 6namespaceNExplus.NSiter 7{ 8/**////<summary> 9///获取Cookie的方法类。 1...

ahz50086的博客 335

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Asp.net删除Cookie

以下是我刚刚完善的删除cookie的方法 /// /// 删除Cookies /// /// Cookie的名称 /// Cookie的domain /// 布尔类型 public static void DeleteCookie(string CoName, string

kaosini的专栏 955

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

使.NET WebBrowser不与IE或其他实例共享cookie

由于C#中的WebBrowser与包括IE在内的所有其他WebBrowsers实例共享cookie,我希望WebBrowser拥有自己的cookie容器,该容器不共享之前在IE或其他实例中创建的任何cookie。 因此,例如,当我创建WebBrowser时,它不应该有任何cookie。 当我运行2个WebBrowsers实例时,它们拥有自己的cookie容器,并且不会彼此共享或冲突cookie。...

u014712365的博客 197

C# WebBrowser 不同进程独立cookie 默认同一个进程内多个WebBrowser共享cookie

C# WebBrowser 不同进程独立cookie 默认同一个进程内多个WebBrowser共享cookie 找了好久才找到的代码段,现在给大家共享## #region 一个进程一个COOKIE的关键代码 /* 一个进程中的webBrowser共享一个cookie,webBrowser.Navigate()之前调用方法SuppressWininetBehavior()即可*/ [DllImport(“wininet.dll”, CharSet = System.Runtime.InteropService

1011

C#中的cookie编程

Cookie就是所谓的" 小甜饼" ,他最早出现是在Netscape Navigator 2.0中。Cookie其实就是由Web服务器创建的、将信息存储在计算机上的文件。那么为什么Web服务器要在客户机上面创建如此文件?这是因为当客户机发送一个请求到WEB服务器时(譬如准备浏览页面时),无论此客户机是否是第一次来访,服务器都会把它当作第一次来对待,WEB服务器所做的工作只是简单的进行响应,然后就关

jelink的专栏 832

C#中Cookie的创建、传值及取值

首先来简单的介绍下Cookie:通俗的讲,它是一种暂时存放在计算机中的 .txt文件,有着属于自己的生命周期,并不会一直存在,它会帮忙记录你所浏览的网站,以及在该网站上做的一些选择或输出的文字信息,当下次再访问同一个网站时,Wed服务器会先查看你的计算机中有没有上次浏览该网站的Cookie资料,有的话就会根据Cookie中的内容来判断用户,并打开特定的网页内容给你。这样看来,Cookie是不是既方...

weixin_44542089的博客 1511

c# http请求添加cookie

CookieCollection cookList = new CookieCollection(); cookList.Add(new Cookie("cf_clearance", "31233dc649a45d559ab4f624eba501646d9a7c8a-1492325756-57600", "/", ".taokemiao.com"));...

dibeichan3033的博客 649

C#读写Cookie

用C#如何创建、读取cookie: 一、创建cookie,并写入数据: //创建、写入Cookie HttpCookie cookie = Request.Cookies["MWS_User"]; if (cookie == null) { cookie = new HttpCookie("MWS_User"); } ...

weixin_33851604的博客 162
上一篇: JS实现在线考试系统并立即评分
下一篇: select 中的DISTINCT用法
morrisonwu
博客等级 码龄19年 82粉丝 5原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值