Hello开发人员,
我在ASP.NET中使用Cookie有点新鲜,如果这是一个基本问题我会道歉。所以我在我的web.config中有以下代码,我有点想要了解cookie。
<httpCookies httpOnlyCookies="true" requireSSL="true"/>
现在这是我的问题。我以两种方式创建了一个cookie(我需要保护它)。
我保护它的一种方法是使用此代码 -
protected void btnSubmit_Click(object sender, EventArgs e)
{
HttpCookie cookie = new HttpCookie("UserInfo");
cookie.Secure = true; // secure the cookie
cookie["username"] = txtEmail.Text;
if (txtEmail.Text != "")
{
Response.Cookies.Add(cookie);
}
Response.Redirect("WebForm2.aspx");
}
现在,当我使用此代码创建它时,我得到了以这种方式保护的UserInfo cookie。
protected void btnSubmit_Click(object sender, EventArgs e)
{
Response.Cookies["UserInfo"]["userName"] = txtEmail.Text;
}
现在这是我的问题。为什么使用&#34; Response.Cookies&#34;默认使用web.config中的设置?为什么我使用HttpCookie创建cookie时我必须通过在CS代码中将其设置为true来保护它?我最好的猜测是,因为我正在创建一个HttpCookie的实例,这就是为什么,但我想要进一步指导。
非常感谢!
答案 0 :(得分:0)
为什么使用&#34; Response.Cookies&#34;默认使用中的设置 WEB.CONFIG?
简单/直接的答案是设计的。
假设您致电
时cookie不存在<div class="icons">
<a href="#"><img src="http://lorempixel.com/256/256/abstract/2/" /></a>
</div>
为您创建Cookie并为其分配值,但会给出您在以下位置指定的默认值:
Response.Cookies["UserInfo"]["userName"] = txtEmail.Text;
但是,如果要按照已经指出的方式进行实例化并将其添加到集合中,它将使用这些手动设置的值,在<httpCookies httpOnlyCookies="true" requireSSL="true"/>
的情况下,new HttpCookie
属性默认值价值是假的;
如Cookie集合docs
中所述您可以近距离亲自了解HttpCookieCollection的代码以及更多关于&#34;为什么&#34;。