设置Cookie端口

时间:2010-03-09 02:31:24

标签: .net .net-3.5 cookies

我正在尝试在ASP.NET中设置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..

编辑: 对不起,我想提一下,我也试过Port =“80”但没有成功。

3 个答案:

答案 0 :(得分:1)

端口443用于SSL连接,但您将Secure属性设置为false。如果要使用端口443,请指定Secure = true。

答案 1 :(得分:1)

不幸的是,我从来没有找到一个很好的解决方案。我所做的就是删除端口定义。我确实注意到W3C规范中有关端口的cookie,如果我记得,版本2 cookie不支持端口的规范。我尝试在没有端口的情况下创建cookie,然后稍后设置端口,但没有运气。我继续获得...threw exception: System.Net.CookieException: The 'Port'='80' part of the cookie is invalid..

的运行时异常

对不起,这不是更多的帮助...

答案 2 :(得分:1)

我迟到了但是遇到了类似的问题,并且必须在逗号分隔的双引号内设置端口。

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

“... 否则,该值必须是双引号字符串,其中包含用逗号分隔的端口值。

MSDN Docs for Port Property