Tôi đang cố gắng đặt cookie trong ứng dụng của mình.cookie cục bộ không được đặt
Dưới đây là đoạn code để đặt cookie:
public HttpResponseMessage LogIn(UserLoginVM user)
{
// Do login stuff
var cookie = new CookieHeaderValue("STUPID-COOKIE", "12345");
cookie.Domain = Request.RequestUri.Host;
cookie.Path = "/";
cookie.HttpOnly = true;
// Get user's profile
HttpResponseMessage res = Request.CreateResponse<UserProfileVM>(HttpStatusCode.OK, profile);
res.Headers.AddCookies(new CookieHeaderValue[] { cookie });
return res;
}
Câu trả lời từ máy chủ như sau:
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/8.0
Set-Cookie: STUPID-COOKIE=12345; domain=localhost; path=/; httponly
Access-Control-Allow-Origin: *
X-AspNet-Version: 4.0.30319
X-SourceFiles: =?UTF-8?B?QzpcUFJPSkVDVFNcU2Ftc2tpcC5TZXJ2aWNlV2ViTmV3XFNhbXNraXAuQXV0aEFQSVxTYW1za2lwLkF1dGhBUElcbG9naW4=?=
X-Powered-By: ASP.NET
Date: Wed, 18 Feb 2015 11:58:07 GMT
Content-Length: 8019
Thông báo tiêu đề sau đây:
Set-Cookie: STUPID-COOKIE=12345; domain=localhost; path=/; httponly
Tuy nhiên, khi Tôi đi theo "Cookie" trong tab "Tài nguyên" trong Chrome, không có gì được đặt. Ngoài ra khi tôi gửi yêu cầu đến máy chủ, không có cookie nào nằm trong tiêu đề.
Dưới đây là đoạn code mà đọc cookie:
CookieHeaderValue cookie = Request.Headers.GetCookies("STUPID-COOKIE").FirstOrDefault();
cookie
biến luôn là null.
Ứng dụng của tôi đang chạy trên http://localhost:53998 và dịch vụ chứng thực đang chạy trên http://localhost:60858
phiên bản My Chrome 40.0.2214.111.
Dưới đây là một GIF chứng minh vấn đề: http://i.imgur.com/q7lkXBz.gif
Edit: này có vẻ là không đặc hiệu vào Chrome. Điều này cũng không hoạt động trên FireFox (v35). GIF: http://i.imgur.com/ZewnEtc.gif
EnableCorsAttribute ("*", "*", "*") cực kỳ nguy hiểm và không bao giờ nên làm. Bạn vứt bỏ gần như tất cả các biện pháp bảo vệ chính sách cùng nguồn gốc và người dùng mở ứng dụng của bạn vào một loạt các cuộc tấn công trên nhiều trang web bao gồm cả các cuộc tấn công liên quan đến giả mạo trình duyệt. Bạn phải chính xác trong lĩnh vực, tiêu đề và phương pháp nào bạn cho phép. –