2010-03-09 132 views
3

我想在ASP.NET(下面的代碼)的cookie上設置端口,但我在運行時(代碼下)得到一個非常不尋常的錯誤。有什麼想法嗎?設置Cookie端口

target.Cookie = new Cookie 
{ 
    Comment = "Test Comment", 
    CommentUri = new System.Uri("http://www.tempuri.org"), 
    Discard = false, 
    Domain = "tempuri.com", 
    Expired = false, 
    Expires = new DateTime(2015, 12, 31), 
    HttpOnly = false, 
    Name = "TestCookie", 
    Path = "/", 
    Port = "443", 
    Secure = false, 
    Value = "Test Value", 
    Version = 1, 
}; 

例外:

System.Net.CookieException: The 'Port'='443' part of the cookie is invalid.. 

編輯: 對不起,我的意思是提到我也試着港口= 「80」,但沒有成功。

回答

1

不幸的是,我從來沒有找到一個很好的解決方案。我最終做的是刪除端口定義。我在W3C規範中注意到有關端口的cookie,如果我記得,版本2 cookie不支持端口的規範。我已經嘗試創建沒有端口的cookie,然後稍後設置端口,但沒有運氣。我繼續得到...threw exception: System.Net.CookieException: The 'Port'='80' part of the cookie is invalid..

對不起,這不是更多的幫助,運行時異常...

1

端口443用於SSL連接,但您的Secure屬性爲false。如果您想使用端口443,請指定Secure = true。

+0

對不起,我的意思是補充一點,我試過端口=「80」沒有成功,這不應該要求安全= true – CodeMonkey1313 2010-03-09 03:54:20

+0

是否有一個特定的原因,你設置cookie的端口?對於網絡請求它將超過80或443.這些不會改變。 – Brownman98 2010-03-10 02:56:19

0

有點晚了,但我知道遇到了類似的問題,並且端口必須以逗號分隔的雙引號內設置。

port = @"""80,8080""" 

「... 否則,該值必須是包含逗號分隔的端口值的雙引號字符串。

MSDN Docs for Port Property