C# 会话是否使用cookies?

C# 会话是否使用cookies?,c#,asp.net,session,cookies,C#,Asp.net,Session,Cookies,这是一个月前的面试问题 会话是否使用cookies?如果是,他们是如何做到的 假设Session[“UserId”]=1此Session变量如何在内部使用cookie?如果是这样,cookie的名称是什么,cookie的值是什么……否,存储在服务器上tmp文件夹的某个位置。 会话是服务器端,Cookie是客户端。当数据本身存储在服务器上时(如果以这种方式配置,则存储在SQL中),需要有一种方法将会话数据与特定用户关联起来 默认情况下,这是通过cookie完成的,但是您可以配置cookieless

这是一个月前的面试问题

会话是否使用cookies?如果是,他们是如何做到的


假设
Session[“UserId”]=1
此Session变量如何在内部使用cookie?如果是这样,cookie的名称是什么,cookie的值是什么……

否,存储在服务器上tmp文件夹的某个位置。
会话是服务器端,Cookie是客户端。

当数据本身存储在服务器上时(如果以这种方式配置,则存储在SQL中),需要有一种方法将会话数据与特定用户关联起来

默认情况下,这是通过cookie完成的,但是您可以配置cookieless,在这种情况下,唯一id存储在URL中

来自Microsoft:

ASP通过在会话开始时向客户端提供分配给用户的唯一密钥来维护会话状态。此密钥存储在HTTP cookie中,客户端在每次请求时发送给服务器。然后,服务器可以从cookie中读取密钥,并重新膨胀服务器会话状态


每个会话都会有SessionID。会话ID是服务器在特定用户访问(会话)期间分配给该用户的唯一编号。默认情况下,会话ID附加到cookie,并且在请求/响应期间,该cookie将在客户端到服务器(以及服务器到客户端)之间共享。服务器将根据从cookie中检索到的会话id来识别会话


关于cookieless,如果您的浏览器不支持cookie或已禁用,则将使用cookieless。由于没有cookie,asp.net无法创建cookie来保存会话id。相反,会话id将以查询字符串形式传递…

cookie是将用户会话id绑定到服务器上会话数据的默认方法。在php中,会话存储在服务器上。我不知道这是asp。我的错。你是对的,实际变量存储在服务器上(尽管你可以提供不同的会话状态提供程序),但正如Michael Shimins指出的,会话令牌默认存储在cookie中。这太糟糕了,如果它在cookie中,你不能操纵cookie吗?这是我在许多人中看到的一个巨大误解(我的同事)PHP开发人员。PHP会话id同样存储在客户端的cookie中。还有其他方法(不包括不太安全的URL令牌方法)PHP能识别会话id吗?想想看。这篇文章提到了几乎所有的细节。会话id必须在浏览器和服务器之间传递,这样IIS/ASP.NET就可以知道某个请求需要使用哪个会话对象。检查