在www.example.com中,会话和Cookie有何区别ASP.net?

mo49yndu  于 2023-02-14  发布在  .NET
关注(0)|答案(8)|浏览(205)

会话和Cookie之间的区别是什么?
在什么情况下应分别使用?

f0ofjuux

f0ofjuux1#

    • 届会**

Sessions按用户存储在服务器上的内存(或替代Session-State)中。会话使用cookie(* session key )将用户与会话联系起来。这意味着用户计算机上的cookie中不会存储"敏感"数据。
Sessions通常用于在您浏览网站时维护状态。但是,它们也可用于保存经常访问的对象。
仅当会话状态设置为InProc时,如果设置为另一个Session-State mode,则对象也必须可序列化。*

Session["userName"] = "EvilBoy";

if(Session["userName"] != null)
  lblUserName.Text = Session["userName"].ToString();
    • 饼干**

Cookies按用户存储在用户的计算机上。Cookie通常只是一些信息。Cookie通常用于简单的用户设置颜色首选项等。Cookie中不应存储任何敏感信息。
您永远不能完全相信cookie没有被用户或外部来源篡改,但是如果安全性是一个很大的问题,您必须使用cookie,那么您可以加密您的cookie或设置它们只通过SSL传输。用户可以在任何时候清除他的cookie或完全不允许cookie,所以您不能指望它们存在,只是因为用户在过去访问过您的网站。

//add a username Cookie
Response.Cookies["userName"].Value = "EvilBoy";
Response.Cookies["userName"].Expires = DateTime.Now.AddDays(10);
//Can Limit a cookie to a certain Domain
Response.Cookies["userName"].Domain = "Stackoverflow.com";

//request a username cookie
if(Request.Cookies["userName"] != null)
   lblUserName.Text = Server.HtmlEncode(Request.Cookies["userName"].Value);
  • 旁注 *

值得一提的是,ASP.NET还支持cookieless状态管理

9jyewag0

9jyewag02#

    • Cookie**是变量的客户端存储。它通过浏览器物理存储在客户端计算机上。它的范围是计算机范围。同一台计算机上的不同用户可以读取相同的Cookie。

正因如此:
1.您不应在cookie上存储敏感数据。
1.不应存储属于一个用户帐户的数据。

  1. Cookie对服务器资源没有影响。
  2. Cookie在您指定的日期过期。
    • 会话**是变量的服务器端存储。默认情况下,它存储在服务器的内存中。但您可以将其配置为存储在SqlServer中。它的作用域是浏览器范围。同一用户可以运行两个或多个浏览器,每个浏览器都有自己的会话。

正因如此:
1.可以在会话中保存敏感数据。
1.您不应该保存会话中的所有内容。这是对服务器资源的浪费。
1.用户关闭浏览器后,会话超时将清除所有信息。(默认值为20分钟)

lsmd5eda

lsmd5eda3#

Cookie是由服务器(具有域)存储在访问服务器/域的用户的浏览器中的标识字符串。
一个会话是一个单位,可能是变量,状态,设置,当某个用户正在访问一个服务器/域在特定的时间框架。所有的会话信息是在传统的模型存储在服务器上(!)
因为许多并发用户可以同时访问服务器/域,所以服务器需要能够区分许多不同的并发会话,并且总是将正确的会话分配给正确的用户。(并且没有用户可以“窃取”其他用户的会话)
这是通过cookie来实现的。cookie存储在浏览器中,在这种情况下,它应该是一个随机组合,如s73 jsd 74 df 4fdf(所以它不能被猜测),在每次从浏览器到服务器的请求中发送,服务器可以分配和使用正确的会话来回答(页面访问)
Cookie允许服务器识别浏览器/用户。会话允许服务器记住不同页面视图之间的信息。

ve7v8dk2

ve7v8dk24#

会话并不依赖于用户是否允许cookie。相反,当用户打开浏览器时,会话就像一个令牌一样允许访问和传递信息。会话的问题是,当你关闭浏览器时,你也会丢失会话。所以,如果你有一个需要登录的网站,它不能像cookie一样保存为会话。并且用户将被迫在每次访问时重新登录。

uelo1irk

uelo1irk5#

两者都有可能:散列数据库主键并将其存储在查找表中:然后哈希值作为cookie存储在客户机上,一旦提交了哈希cookie(hahahaha:),就会查找其对应的主键,其余的详细信息则在服务器数据库的另一个表中与之关联。

z5btuh9x

z5btuh9x6#

  • Cookie和会话之间的主要区别在于Cookie存储在用户的浏览器中,而会话则不是。这种区别决定了两者的最佳用途。
  • Cookie可以将信息保存在用户的浏览器中,直到被删除。如果用户有登录名和密码,可以将其设置为浏览器中的Cookie,这样他们就不必在每次访问您的网站时重新登录。您可以在浏览器Cookie中存储几乎任何内容。
du7egjpx

du7egjpx7#

会话是一个服务器端对象,它在页面调用之间传递或访问数据。
Cookies是客户端/客户机存储浏览器和服务器的一些文本信息的对象。

yb3bgrhw

yb3bgrhw8#

关于什么是会话cookie似乎存在一些混淆。
首先,当我们谈论会话cookie时-它与ASP.NET会话无关。同样,会话cookie与服务器端进程或缓存无关。
会话cookie只不过是浏览器会话过期时过期的cookie。要创建会话cookie -不要在其上设置过期日期。这样做会将cookie存储在内存中,并在浏览器被处理时被处理。

相关问题