【发布时间】:2018-11-07 14:05:24
【问题描述】:
假设我从https://test.mycompany.com/app01/index.html 托管我的网站。 Index.html 是我的登录页面。 https://test.mycompany.com:10000 是我的后端。 Grapevine 为后端提供动力。我将我的 cookie 设置如下:
Dim token As IdentityModel.Tokens.Jwt.JwtSecurityToken = Nothing
Dim j As String = JWT.Serialize(FetchSetting("JWTKey"), String.Empty, String.Empty,
ClaimsIdn, token, FetchSetting("GlobalTimeout"))
Dim AuthCookie As New Net.Cookie("Authorization", j) With {
.Expires = token.ValidTo,
.Path = "/",
.Domain = "test.mycompany.com"
}
Context.Response.Cookies.Add(AuthCookie)
登录时,我通过 Chrome 控制台进行监控。登录返回 200。在 Network >(登录 POST 请求)下,我看到了一个 Cookies 选项卡。我还可以在 Headers 选项卡下(在 Response Headers 下)看到一个 Set-Cookie 标题。在 Applications > Cookies 下,它是空的。如果我将该字符串粘贴到控制台并将其设置为 document.cookie,它会正确设置(并且可以从 Applications > Cookies 中看到它)。
【问题讨论】:
-
在 Grapevine 中设置 cookie 工作正常。当我这样做时:
context.Response.Cookies.Add(new Cookie("test", "working"));,cookie 会为我显示在 Google Chrome 控制台中。 cookie的生成方式可能有问题? -
为了简单起见,我只创建了一个新的 cookie 对其进行了测试,例如
New Net.Cookie("Name", "Value")。结果相同。我想知道CORS是否与它有关。如果有办法调试并查看 CORS 在做什么,也许会默默地拒绝它(由于域/路径/端口)。
标签: vb.net http cookies grapevine