你好的開發夥伴們,的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