在我的应用中。有一个登录机制,用于保存一个cookie,其中包含刚刚登录的用户的信息
private void CreateCookie(LoginEventArgs args)
{
HttpCookie cookie = new HttpCookie("user");
cookie.Values["name"] = args.User_Name;
cookie.Values["id"] = args.ID;
cookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(cookie);
}
在我的母版页面加载我执行检查以查看此cookie是否存在:
HttpCookie cookie = Request.Cookies["user"] ;
if( (cookie != null) && (cookie.Value != ""))
{
if (Session["user"] == null)
Login_Passed(this, new LoginEventArgs(cookie.Values["name"].ToString(), int.Parse(cookie.Values["id"])));
}
现在,如果我登录(创建一个cookie),关闭浏览器,然后运行我的应用程序。再次cookie 存在它的值是正确的并且用户“自动”登录。
如果我首先从启动内容页面重定向到不同的内容页面 Cookie值也完好无损,
问题是当我第二次重定向回不同的内容页面时, 主页加载,进行检查 cookie存在,但值被删除...
关于为什么会发生这种情况的任何想法?
也许我退出的方式可能就是这个问题的原因:当我退出时,我创建了一个与1天前相同名称的cookie。
private void Remove_Cookie()
{
HttpCookie cookie = new HttpCookie("user");
cookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(cookie);
}
在iv'e描述的情况下,我没有正式退出,我只是结束我的应用程序,所以这不应该 有任何影响。
答案 0 :(得分:16)
在“消失的Cookie”一文中的部分
作者说如果你有关于Response.Cookies [“cookie_name”]的手表 浏览器会创建一个新的空cookie来覆盖您的cookie。
我使用了这样的手表,这使我的饼干松散了它的价值,当我把它取下时,饼干保留了它的价值。
道德是不要观看Response.Cookies [“”] 我也读过其他一些帖子,如果你检查
if( Response.Cookies["cookie_name"] != null )
例如,它也被覆盖了。
答案 1 :(得分:7)
重申并以已经陈述的内容为基础(是的,我知道这是一个4岁的问题)我发现最好建立一个实用程序来处理这个 - 主要是因为我想经常检查那个特定的cookie。
这不会触及响应,但只能从请求中读取。
public static HttpCookie GetCookie(string cookieName)
{
HttpCookie rqstCookie = HttpContext.Current.Request.Cookies.Get(cookieName);
/*** NOTE: it will not be on the Response!
* this will trigger the error noted in the original question and
* create a new, empty cookie which overrides it
*
HttpCookie respCookie = HttpContext.Current.Response.Cookies.Get(cookieName);
*
*/
if (rqstCookie != null && !String.IsNullOrEmpty(rqstCookie.Value))
{
// is found on the Request
return rqstCookie;
}
else
{
return null;
}
}
始终从请求中读取并写入响应。
谢谢伊兰!这篇文章正是我所需要的
答案 2 :(得分:0)
尝试以下方法:
答案 3 :(得分:0)
使用以下方法从Cookie中获取价值:
<div id="sort-filter">
<div id="sort">
<select id="price-sort" class="select-css form-control long">
<option selected disabled class="s-title"> Sort </option>
<option data-sorttype="dec" value="price">£ Low To High</option>
<option data-sorttype="ass" value="price">£ High To Low</option>
</select>
</div>
<div class="filters">
<select class="filter-select select-css short" value-group="sizes" id="sizes">
<option selected disabled class="s-title"> Size </option>
<option value="*">All</option>
<option value=".XS">XS</option>
<option value=".S">S</option>
<option value=".M">M</option>
<option value=".L">L</option>
<option value=".XL">XL</option>
<option value=".XXL">XXL</option>
</select>
</div>
</div>
<div class="container">
<ul class="grid cs-style-3">
<div class="grid-sizer"></div>
<li class="grid-item XS Male Beige Bags Mint">
<a href="link" class="animsition-link" data-animsition-out-class="fade-out-left-lg">
<figure style="background-image: URL(image.jpg);">
<img src="/image2.jpg" alt="hat sale item">
</figure>
<div id="pro-deets">
<h3>hat sale item</h3>
<span id="price" class="holderpage">
£<span class="price t-price">3</span>
</span>
</div></a>
</li>
<li class="grid-item L Female Brown Tops Worn">
<a href="link" class="animsition-link" data-animsition-out-class="fade-out-left-lg">
<figure style="background-image: URL(image.jpg);">
<img src="/image2.jpg" alt="product no sale no new">
</figure>
<div id="pro-deets">
<h3>product no sale no new</h3>
<span id="price" class="holderpage">
£<span class="price t-price">40</span>
</span>
</div></a>
</li>
<li class="grid-item L Female Brown Tops Worn New" data-category="New">
<a href="link" class="animsition-link" data-animsition-out-class="fade-out-left-lg">
<figure style="background-image: URL(image.jpg);">
<img src="/image2.jpg" alt="Skirt">
</figure>
<div id="pro-deets">
<h3>Skirt</h3>
<span id="price" class="holderpage">
£<span class="price t-price">10</span>
</span>
</div></a>
</li>
<li class="grid-item XS Male Beige Bags Mint Sale" data-category="Sale">
<a href="link" class="animsition-link" data-animsition-out-class="fade-out-left-lg">
<figure style="background-image: URL(image.jpg);">
<img src="/image2.jpg" alt="Jacket">
</figure>
<div id="pro-deets">
<h3>Jacket</h3>
<span id="price" class="holderpage">
£<span class="price sale">30</span>
<span class="price">£<span class="t-price">20</span></span>
</span>
</div></a>
</li>
</ul>
</div>