Fel*_*x C 28 c# asp.net cookies
有一些不同的方法可以在ASP.NET中创建多值cookie:
var cookie = new HttpCookie("MyCookie");
cookie["Information 1"] = "value 1";
cookie["Information 2"] = "value 2";
// first way
Response.Cookies.Add(cookie);
// second way
Response.AppendCookie(cookie);
// third way
Response.SetCookie(cookie);
Run Code Online (Sandbox Code Playgroud)
我什么时候应该使用哪种方式?我已经读过该SetCookie
方法更新cookie,如果它已经退出.其他方式也不会更新现有的cookie吗?
编写单值cookie是以下代码最佳实践吗?
Response.Cookies["MyCookie"].Value = "value";
Wik*_*hla 29
如果我没记错的话
Response.Cookies.Add(..)
Run Code Online (Sandbox Code Playgroud)
和
Response.AppendCookie(..)
Run Code Online (Sandbox Code Playgroud)
将允许多个同名的cookie附加到响应中.
另一方面
Response.SetCookie(..)
Run Code Online (Sandbox Code Playgroud)
和
Response.Cookies[key].Value = value;
Run Code Online (Sandbox Code Playgroud)
将始终覆盖以前的同名cookie.
Yai*_*vet 17
我什么时候应该使用哪种方式?
这取决于您想要执行的Cookie操作.
请注意,Add
并且AppendCookie
正在执行相同的功能,除非AppendCookie
您没有引用该Cookies
属性Response
class
并且它正在为您执行此操作.
Response.Cookies.Add
- 将指定的cookie 添加到cookie集合中.Response.AppendCookie
- 将 HTTP cookie 添加到
内部 cookie集合Response.SetCookie
- 更新 cookie集合中的现有cookie.Exceptions
添加重复cookie或尝试更新不存在的cookie时不会抛出.
主要exception
的这些方法是:HttpException
(HTTP标头已被发送后一个cookie被附加.)
Add方法允许cookie集合中的重复cookie.使用Set方法确保cookie集合中cookie的唯一性.
谢谢你的MSDN!
捎带上TNE的在Wiktor的答复意见,AppendCookie
而SetCookie
不应使用-他们是由.NET框架内部使用.它们不应该是公开的,但它们是,我的猜测将是对其他地方的IIS管道的破解.
所以你应该这样设置你的cookie(或者写一个扩展方法来设置多个cookie):
string cookieName = "SomeCookie";
string cookieValue = "2017";
if (Response.Cookies[cookieName] == null)
{
Response.Cookies.Add(new HttpCookie(cookieName, cookieValue));
}
else
{
Response.Cookies[cookieName].Value = cookieValue;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15060 次 |
最近记录: |