Ich Cookies als Teil meiner MVC-Anwendung einstellen:ASP MVC 3 Cookies verlieren Httponly und sichere Flaggen
var cookie = new HttpCookie(CookieName, encryptedData)
{
Path = FormsAuthentication.FormsCookiePath,
Domain = CookieDomain,
Expires = authenticationTicket.Expiration,
HttpOnly = true,
Secure = IsSecure // true
};
response.Cookies.Add(cookie);
Nun, wenn ich mir debuggen, dass seine alle arbeiten gut, keine Probleme und ihr Mehr und das ist in Ordnung auch. Aus irgendeinem Grund jedoch, wenn es tatsächlich den Browser erreicht, gibt es kein HttpOnly-Flag oder Secure-Flag gesetzt. Also im ein bisschen verwirrt ...
Ich habe versucht, die Einstellung der Httponly und sichere Flaggen im Cookie web.config Eintrag unter System.Web:
<httpCookies httpOnlyCookies="true" requireSSL="true" />
Hier ist, wie die Antwort aussieht, wenn der Browser erhält es:
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Max-Age: 10000
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: content-type, x-requested-with, *
Access-Control-Allow-Origin: http://localhost:34567
X-AspNetMvc-Version: 3.0
X-AspNet-Version: 4.0.30319
Set-Cookie: myCookie=53BA8AF84835A81E014B9174329D8543FBB6029B71C463C6FC1305D9F966F28EAA058FE103325C0F10A3012480FB0EF3F6C0BAC4703A6A6B725F383ADA35A5C125A0438FC42CADCB0DAB77953C967E6660E51C4113C6545220A0C2F86230F446D159D523BBE9CA4D9419A67BC44D23B9C4D0974DF2ED66C47EA7308D8E42E1C2280EA6059A23303E3BCBDF28F6BD4A3DFA92FFAB33DDAC8EC05D99310D26FBD6310252156CD28B89386B0D483D6D2E295EF33487E64468655371CC446E0B5DDBF12B3AA8218AF1FA929A98638A1AC729BA60815B86EAD9624ED1787172B585BE4E457C3568AB6EAAF4865E8468D04336FA7340AAC1BA75162FB322D436DC9BF50466F2F0FB3464ECF41C6C1F7001639DFE2AB2AD9CBFB65A292FE5FA42783DF331AA4641432647BA9672FE6D4C15F830E4DF8B38605852BCB15E5B01B862D966E2FD1D620730312982DB8AB4CE5EE0D0E40E6C3F5234DE5EBFA594036D912F07C3798ED429A2552AD6C4B9EC10B90749850CBDEC97F0BF7E2E43CB3991608C5D533B6EA9F8D0A7AD949B42CD3BAA13DEE99C330121B3D868B412A3435FA01C7F223641CFE441A2E07F5DFB8B23F053CBA13F5E1262A07FBFD4EC4BADF9BD5898; expires=Wed, 27-Feb-2013 19:15:24 GMT; path=/
Date: Wed, 27 Feb 2013 18:45:24 GMT
Content-Length: 2
Also fehlt mir hier etwas? oder gibt es etwas, das ich nicht irgendwo hinstelle, wo ich sein sollte? Ich benutze auch CORS, weil dieser Cookie von einem Webserver als Authentifizierungsmechanismus ausgegeben wird. SSL ist aktiviert und wird auch über HTTPS für Anrufe verwendet. Selbst wenn ich sichere Cookies ausschalte und http verwende, wird auch das HTTPOnly-Flag nicht gesetzt, so dass ich verwirrt bin.
=== aktualisieren ===
Doppel Nachdem geprüft es scheint ich falsch informiert Sie die Httponly Antwort wird nach unten von dem Server korrekt auf das erste Mal, wenn Sie das Cookie JEDOCH erhalten gesendet! Wenn ein Ajax-Aufruf dann den Cookie an den Server sendet, scheint er das httponly-Flag nicht hinzuzufügen, was dann bedeutet, dass der Cookie, der geworfen wird, nicht mehr so sicher ist. Der sichere Teil des Cookies wird bei der ersten Antwort nicht gesendet, aber das fügt zumindest etwas mehr Kontext hinzu.
Dank wird es versuchen, diese Gewohnheit Auswirkungen auf die HttpOnly obwohl wird es? oder muss das auf Formen oder etwas auch eingestellt werden? Ich finde es merkwürdig, wenn das funktioniert, wenn MANUALLY dies per Cookie setzt, also weiß ich nicht, warum es die eingegebenen Daten nicht akzeptieren würde. – Grofit
Die Forms Bit funktioniert nicht, nur sagt mir, dass die web.config nicht gültig ist, aber die Dokumentation nicht auf MSDN geladen wird, also nicht ganz sicher, ob es einige erforderliche Kind Elemente gibt. – Grofit
Obwohl dies nicht die Antwort auf meine Frage war, bin ich sicher, dass die meisten Leute, die hierher kommen, die oben aufgelistete Lösung benötigen, also werden Sie als die Antwort markiert. – Grofit