你好的开发伙伴们,的HttpCookie VS是Response.Cookie
我是小新在ASP.NET饼干工作,我道歉,如果这是一个基本的问题。所以我在我的web.config中有以下代码,我有点玩弄了解cookies。
<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");
}
现在,当我用这个代码来创建它,我得到了用户信息的cookie被固定在这种方式很好。
protected void btnSubmit_Click(object sender, EventArgs e)
{
Response.Cookies["UserInfo"]["userName"] = txtEmail.Text;
}
现在这是我的问题。为什么使用“Response.Cookies”默认使用web.config中的设置?如何使用HttpCookie创建cookie我必须通过在CS代码中将其设置为true来保护它。我最好的猜测是,因为我正在创建一个HttpCookie的实例,所以这就是为什么,但我希望在这方面有更进一步的方向。
非常感谢!
你确定这个设置是真的需要吗? 'Secure'默认为false,是的,但[文档](https://msdn.microsoft.com/en-us/library/system.web.httpcookie.secure%28v=vs.110%29.aspx)建议所有cookie都通过SSL传输,如果web.config如此说明,除非在代码中明确覆盖。所以,即使'Secure'最初是错误的,只要你没有明确运行'Secure = false',你应该没问题。 – Andrei
@Andrei有趣。我不知道为什么,但是当我使用HttpCookie创建cookie时,“安全”未显示为真。我想可能通过HttpCookie创建cookie可能是我实例化它的原因,但我不确定是否是这种情况。 –
确切的说,它不会是真的,默认值是false。但关键在于,只要你的代码没有明确地设置“false”,cookie将是安全的,因为web.config这样说。执行'HttpCookie'可能会以某种方式检测显式覆盖 – Andrei