Session 和 Cookie 有什么区别?
分别应该在什么情况下使用?
最佳答案
session
Sessions每个用户存储在服务器上的内存中(或替代 Session-State )。 session 使用 cookie( session key )将用户绑定(bind)到 session 。这意味着没有“敏感”数据存储在用户机器上的 cookie 中。
Sessions通常用于在您浏览网站时维护状态。但是,它们也可以用于保存经常访问的对象。 仅当 session 状态设置为 InProc 时,如果设置为另一个 Session-State mode该对象还必须是可序列化的。
Session["userName"] = "EvilBoy";
if(Session["userName"] != null)
lblUserName.Text = Session["userName"].ToString();
Cookies
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状态管理
关于c# - Session 和 Cookie 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/623815/