iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >ASP.NET中Cookie的作用是什么
  • 670
分享到

ASP.NET中Cookie的作用是什么

2023-06-17 18:06:45 670人浏览 泡泡鱼
摘要

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

本篇文章给大家分享的是有关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的作用是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。

--结束END--

本文标题: ASP.NET中Cookie的作用是什么

本文链接: https://www.lsjlt.com/news/291934.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • ASP.NET中Cookie的作用是什么
    本篇文章给大家分享的是有关ASP.NET中Cookie的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。ASP.NET Cookie在Web开发中应用较多。做用户登录,...
    99+
    2023-06-17
  • asp.net中AutoEventWireup的作用是什么
    在ASP.NET中,AutoEventWireup是一个页面级别的属性,用于控制自动事件绑定的行为。默认情况下,AutoEventW...
    99+
    2023-09-14
    asp.net
  • ASP.NET 中Timer的作用是什么
    这篇文章将为大家详细讲解有关ASP.NET 中Timer的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。首先得解决这个问题:如何让网页定时Post回Server端。 正常情况下这个...
    99+
    2023-06-18
  • ASP.NET中DataGrid控件的作用是什么
    这篇文章给大家介绍ASP.NET中DataGrid控件的作用是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。ASP.NET DataGrid控件可通过设置 DataGrid 控件的 DataSource 属性来将实...
    99+
    2023-06-18
  • ASP.NET中contentPlaceHolder控件的作用是什么
    ContentPlaceHolder控件是ASP.NET中的一个特殊控件,用于定义一个可替换的区域,其作用是允许在页面中的不同位置插...
    99+
    2023-09-26
    ASP.NET
  • ASP.NET中AutoEventWireup属性的作用是什么
    AutoEventWireup属性是ASP.NET中的一个页面级别的属性,用于指定是否自动将事件与事件处理程序进行关联。当AutoE...
    99+
    2023-09-21
    ASP.NET
  • ASP.NET Cookie是怎么生成的(推荐)
    可能有人知道Cookie的生成由machineKey有关,machineKey用于决定Cookie生成的算法和密钥,并如果使用多台服务器做负载均衡时,必须指定一致的machin...
    99+
    2022-06-07
    net ASP.NET cookie ASP
  • ASP.NET ImageButton控件的作用是什么
    ASP.NET ImageButton控件是一个可点击的图像按钮,用于在网页上触发事件或执行特定的操作。它可以显示一个图像,并且用户...
    99+
    2023-10-10
    ASP.NET
  • ASP.NET UniqueID属性的作用是什么
    ASP.NET UniqueID属性是用于在Web应用程序中标识控件的唯一ID。它生成一个唯一的字符串,用于在服务器端标识控件。在页...
    99+
    2023-10-11
    ASP.NET
  • ASP.NET ClientID属性的作用是什么
    ASP.NET中的ClientID属性用于获取在浏览器中呈现给客户端的控件的唯一标识符。由于ASP.NET控件是在服务器端动态生成的...
    99+
    2023-10-12
    ASP.NET
  • ASP.NET AlternateText属性的作用是什么
    ASP.NET的AlternateText属性用于为图片控件提供替代文本。当图片无法显示时,替代文本将被显示给用户。这对于无法显示图...
    99+
    2023-09-22
    ASP.NET
  • ASP.Net中操作Ajax的方法是什么
    在ASP.Net中,操作Ajax的方法主要有以下几种:1. 使用ASP.Net内置的Ajax控件:ASP.Net提供了一系列的Aja...
    99+
    2023-09-26
    ASP.Net Ajax
  • Cookie有什么作用
    这篇文章主要讲解了“Cookie有什么作用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Cookie有什么作用”吧!1Cookie是什么CookieCookie,有时也用其复数形式Cooki...
    99+
    2023-06-04
  • cookie和session的关系及作用是什么
    Cookie和Session是用于在Web应用中保持状态的两种技术。Cookie是由服务器发送给浏览器并存储在用户计算机上的小型文本...
    99+
    2023-09-27
    cookie session
  • NumPy响应对象在ASP.NET中的作用是什么?
    NumPy是Python中用于科学计算的一个重要的库。NumPy提供了高效的数组操作能力,使得Python在科学计算领域中得到了广泛的应用。在ASP.NET中,NumPy的响应对象提供了一种高效的方式来处理大量的数据,特别是在进行数学计算...
    99+
    2023-10-27
    numy 响应 对象
  • asp.net中DataBinder.Eval的用法是什么
    在ASP.NET中,DataBinder.Eval方法用于绑定数据到控件上。它的主要作用是从数据源中获取字段的值,并将其绑定到控件上...
    99+
    2023-10-23
    asp.net
  • ASP.NET MVC中两个配置文件的作用是什么
    小编给大家分享一下ASP.NET MVC中两个配置文件的作用是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!前言在新建完一个MVC项目之后,你会发现整个整个项目结构中存在有两个web.config文件,如下图...
    99+
    2023-06-29
  • Asp.net core中怎么使用cookie验证身份
    今天就跟大家聊聊有关Asp.net core中怎么使用cookie验证身份,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。ASP.NET Core Identity 是一个完整的全功能...
    99+
    2023-06-17
  • ASP.NET Core在WebApi项目中怎么使用Cookie
    这篇文章主要讲解了“ASP.NET Core在WebApi项目中怎么使用Cookie”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ASP.NET Core在WebApi项...
    99+
    2023-06-29
  • Laravel操作session和cookie的方法是什么
    本篇内容主要讲解“Laravel操作session和cookie的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Laravel操作session和cookie的方法是什么”吧!一:操作...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作