我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ASP.NET中Cookie的作用是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ASP.NET中Cookie的作用是什么

本篇文章给大家分享的是有关ASP.NET中Cookie的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

ASP.NET Cookie在Web开发中应用较多。做用户登录,我一直用form验证的方式。有时候,为了节省时间,用户希望用户名输入框能够记住用户名,省得下次重新输入。这个时候光用form验证是不行的,因为form验证的话,用户一退出系统就失效了,所以需要借助于Cookie。

本以为做这个会很轻松,谁知花了不少时间也没有成功。虽然检验用户名和密码都是正确的,但系统总是拒绝登录,然后返回到登录页面。登录页面的用户名输入框记是记住用户名了,但用户名是乱码的。

真是郁闷至极!一度以为系统发生了错乱,重启机器也还是无济于事。经反复检查和测试发现,如果在form验证之前写入cookies,就会拒绝登录。这可能是asp.net出于安全考虑,发现了一个与from标识相同的cookies值,但是它没有明确地这样提示。

解决这个问题的做法是,要先验证登录再把用户名写入cookies,这样就可以成功。

System.Web.Security.FormsAuthentication.SetAuthCookie(UserName.Text,false);//登录...  //将用户名写入cookies  Response.Cookies["RememberMe"].Value = HttpUtility.UrlEncode(UserName.Text, System.Text.Encoding.GetEncoding("gb2312"));  Response.Cookies["RememberMe"].Expires = DateTime.Now.AddMonths(1);

至于输入框的用户名显示为乱码是因为存储的是中文用户名,把中文字符写入cookies时,如果不做任何处理是会生产乱码的。解决方法是如上面红色代码所示,在写入的时候使用url编码,而且编码格式需要是中文格式的。在取得cookies值的时候做相应的解码即可:

UserName.Text = HttpUtility.UrlDecode(Request.Cookies["RememberMe"].Value, System.Text.Encoding.GetEncoding("gb2312"));

另一个问题是删除cookies,以前一直以为用Response.Cookies.Remove("RememberMe")可以删除,但就是没有效果。原来调用Cookies集合的 Remove 方法可从服务器端的集合中移除 Cookie,使 Cookie 不会被发送至客户端。但是,如果客户端已存在   Cookie,则该方法无法从客户端将其移除。 解决方法是,将 Cookie 的到期日期设置为过去的日期,让用户的浏览器来删除 Cookie:

if (Response.Cookies["RememberMe"] != null) Response.Cookies["RememberMe"].Expires = DateTime.Now.AddDays(-1);//删除

***一个问题是创建浏览器进程的cookies(即关闭浏览器就会自动清空),创建方法相当简单,不要设置Expires属性就是默认的浏览器进程cookies。

结尾附上关键部分的代码

System.Web.Security.FormsAuthentication.SetAuthCookie(UserName.Text,false);//登录,一定要先验证         if (RememberMe.Checked)//再写入cookie        {            if (Request.Cookies["RememberMe"] == null)            {                Response.Cookies["RememberMe"].Value = HttpUtility.UrlEncode(UserName.Text, System.Text.Encoding.GetEncoding("gb2312"));                Response.Cookies["RememberMe"].Expires = DateTime.Now.AddMonths(1);            }        }        else       {            if (Response.Cookies["RememberMe"] != null) Response.Cookies["RememberMe"].Expires = DateTime.Now.AddDays(-1);//删除        }

读取cookies值的时候:

if (!IsPostBack)  {      if (Request.Cookies["RememberMe"] != null)      {          UserName.Text = HttpUtility.UrlDecode(Request.Cookies["RememberMe"].Value, System.Text.Encoding.GetEncoding("gb2312"));          RememberMe.Checked = true;      }  }

总结一下:

写一个与form验证相同用户名的值到cookies中,应该先验证后写cookies,否则会产生冲突,导致验证不能通过。

删除cookie的正确方法是设置已有cookies的日期为早于当前时间的日期,使用Cookies.Remove是没有效果的。

创建浏览器进程的cookies,不要设置Expires属性就行了,这样关闭浏览器就会自动被清空

cookies值是中文的时候***用gb2312编码一下,这样可以避免产生乱码。

以上就是ASP.NET中Cookie的作用是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ASP.NET中Cookie的作用是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ASP.NET中Cookie的作用是什么

本篇文章给大家分享的是有关ASP.NET中Cookie的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。ASP.NET Cookie在Web开发中应用较多。做用户登录,
2023-06-17

asp.net中AutoEventWireup的作用是什么

在ASP.NET中,AutoEventWireup是一个页面级别的属性,用于控制自动事件绑定的行为。默认情况下,AutoEventWireup属性被设置为true,表示ASP.NET自动绑定了页面上的事件处理程序。也就是说,当页面的事件(如
2023-09-14

ASP.NET 中Timer的作用是什么

这篇文章将为大家详细讲解有关ASP.NET 中Timer的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。首先得解决这个问题:如何让网页定时Post回Server端。 正常情况下这个
2023-06-18

ASP.NET中AutoEventWireup属性的作用是什么

AutoEventWireup属性是ASP.NET中的一个页面级别的属性,用于指定是否自动将事件与事件处理程序进行关联。当AutoEventWireup属性设置为true时,ASP.NET将自动在页面加载时将事件与事件处理程序进行关联。当A
2023-09-21

ASP.NET中contentPlaceHolder控件的作用是什么

ContentPlaceHolder控件是ASP.NET中的一个特殊控件,用于定义一个可替换的区域,其作用是允许在页面中的不同位置插入不同的内容。在ASP.NET的页面中,通常会使用MasterPage作为整个网站的模板,而ContentP
2023-09-26

ASP.NET中DataGrid控件的作用是什么

这篇文章给大家介绍ASP.NET中DataGrid控件的作用是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。ASP.NET DataGrid控件可通过设置 DataGrid 控件的 DataSource 属性来将实
2023-06-18

asp.net空间的作用是什么

ASP.NET空间是用于开发ASP.NET应用程序的一组类库和工具。它提供了许多功能和组件,使开发人员能够构建强大的Web应用程序和服务。ASP.NET空间包括用于处理HTTP请求和响应、会话状态管理、用户身份验证和授权、数据访问、页面控件
asp.net空间的作用是什么
2024-04-15

ASP.NET Cookie是怎么生成的(推荐)

可能有人知道Cookie的生成由machineKey有关,machineKey用于决定Cookie生成的算法和密钥,并如果使用多台服务器做负载均衡时,必须指定一致的machineKey用于解密,那么这个过程到底是怎样的呢? 如果需要在.NE
2022-06-07

ASP.NET ClientID属性的作用是什么

ASP.NET中的ClientID属性用于获取在浏览器中呈现给客户端的控件的唯一标识符。由于ASP.NET控件是在服务器端动态生成的,生成的HTML元素的ID可能会与其他控件的ID冲突,因此需要为每个控件生成一个唯一的标识符。使用Clien
2023-10-12

ASP.NET ImageButton控件的作用是什么

ASP.NET ImageButton控件是一个可点击的图像按钮,用于在网页上触发事件或执行特定的操作。它可以显示一个图像,并且用户可以单击该图像来执行预定义的操作,例如提交表单、导航到其他页面或执行自定义的服务器端代码。与常规的按钮控件相
2023-10-10

ASP.NET UniqueID属性的作用是什么

ASP.NET UniqueID属性是用于在Web应用程序中标识控件的唯一ID。它生成一个唯一的字符串,用于在服务器端标识控件。在页面上,控件的UniqueID由其容器的UniqueID和控件的ID组成。这个属性对于处理控件的状态和事件很有
2023-10-11

ASP.NET AlternateText属性的作用是什么

ASP.NET的AlternateText属性用于为图片控件提供替代文本。当图片无法显示时,替代文本将被显示给用户。这对于无法显示图片的用户(如视觉障碍者或网络连接较慢的用户)来说非常有用。替代文本还可以在搜索引擎优化中起到重要作用,因为搜
2023-09-22

Cookie有什么作用

这篇文章主要讲解了“Cookie有什么作用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Cookie有什么作用”吧!1Cookie是什么CookieCookie,有时也用其复数形式Cooki
2023-06-04

ASP.Net中操作Ajax的方法是什么

在ASP.Net中,操作Ajax的方法主要有以下几种:1. 使用ASP.Net内置的Ajax控件:ASP.Net提供了一系列的Ajax控件,如UpdatePanel、ScriptManager等,可以通过在页面中添加这些控件来实现Ajax操
2023-09-26

cookie和session的关系及作用是什么

Cookie和Session是用于在Web应用中保持状态的两种技术。Cookie是由服务器发送给浏览器并存储在用户计算机上的小型文本文件。它包含有关用户的信息,如用户名、购物车内容等。每当用户访问同一网站时,浏览器会将该Cookie发送回服
2023-09-27

asp.net中DataBinder.Eval的用法是什么

在ASP.NET中,DataBinder.Eval方法用于绑定数据到控件上。它的主要作用是从数据源中获取字段的值,并将其绑定到控件上。DataBinder.Eval方法的用法如下:DataBinder.Eval(object conta
2023-10-23

ASP.NET中request.form的用法是什么

在ASP.NET中,Request.Form 是一个集合,用于获取由客户端(浏览器)通过 POST 方法发送到服务器的表单数据。使用 Request.Form 可以方便地访问表单中的各个字段值。可以通过字段名访问特定字段的值,例如 Req
ASP.NET中request.form的用法是什么
2024-02-29

ASP.NET MVC中两个配置文件的作用是什么

小编给大家分享一下ASP.NET MVC中两个配置文件的作用是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!前言在新建完一个MVC项目之后,你会发现整个整个项目结构中存在有两个web.config文件,如下图所示:这两
2023-06-29

Asp.net core中怎么使用cookie验证身份

今天就跟大家聊聊有关Asp.net core中怎么使用cookie验证身份,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。ASP.NET Core Identity 是一个完整的全功能
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录