微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ASP.NET Mvc Api:设置cookie然后302/303 Redirect丢失cookie

我有一个API动作,返回一个HttpResponseMessage.
API地址如下: http://localhost/login?authcode=xxx

API操作执行一些登录身份验证,并将用户重定向注册表或欢迎页面.代码如下:

var response = new HttpResponseMessage();
var cookie = new CookieHeaderValue("token","ThisIsThetokenNeeded");
response.Headers.AddCookies(new CookieHeaderValue[] { cookie });
response.StatusCode = HttpStatusCode.Found;
response.Headers.Location = new Uri("http://localhost/welcome.html");
return response;

在welcome.html中,我使用“document.write(document.cookie)”并且看不到名为“token”的cookie.一些如何迷失.谁能告诉我如何完成这项工作或者这个架构毕竟不正确?

解决方法

我找到了答案.范围未设置.在我的原始代码中缺少以下行.
cookie.Path = "/";

由于重定向到另一个页面,即使在同一个域下,该cookie在不同页面上也无效.如果未设置路径,则Cookie仅对定位为http://localhost/login?authcode=xxx的原始请求有效

今天我了解到我需要仔细检查cookie的域名和路径属性,然后再声称有人吃了它.

原文地址:https://www.jb51.cc/aspnet/245467.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐