2010-03-09 67 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