我尝试了许多不同的方式将cookie添加到HttpContext.Current.Response
而没有运气。浏览器没有看到我添加的cookie。请帮助!将cookie设置为HttpContext响应
这里是我的API控制器
public IHttpActionResult Get(string username, string password)
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "*");
//This does not work
HttpCookie cookie = new HttpCookie("ACA-Cookie", "This better work!");
cookie.Expires = DateTime.Now.AddDays(2);
cookie.Domain = Request.RequestUri.Host;
cookie.Path = "/";
HttpContext.Current.Response.SetCookie(cookie);
//This does not work
var cookie = new HttpCookie("MyCookie", DateTime.Now.ToLongTimeString());
HttpContext.Current.Response.Cookies.Add(cookie);
return Ok(HttpStatusCode.OK);
}
这有助于很多! 您是否建议仅使用mvc控制器来为登录设置剩余请求的cookie? –
在我的公司,我们用.Net和Rest基本认证开发了web api。凭证在HTTP请求标头中传递。 – derloopkat
与derloopkat同意,凭证也可以在请求标头中传递给WebAPI控制器。但是,使用REST时,通常需要对每个请求进行身份验证(以保持无状态)。 – Luke