Forms-Authentifizierung - SSL - Einstellung Cookie-Authentifizierung schlägt Fehl
Ich versuche zu konfigurieren, meine Umgebung so, dass das Authentifizierungs-cookie kann nur der Zugriff über HTTPs (Sicherung von XSS-Angriffe). Ich Las mehrere Artikel und ich kam zu dem Schluss, dass ich sollte das requireSSL-Attribut auf "true"
<authentication mode="Forms">
<forms name="someName" loginUrl="~/login" timeout="40" protection="All" slidingExpiration="true" defaultUrl="~/index" requireSSL="true" />
</authentication>
Das problem ist, dass wenn ich versuche das Authentifizierungs-cookie, wirft er eine exception.
FormsAuthentication.SetAuthCookie(username, false);
Ausnahme:
Die Anwendung ist so konfiguriert Problem sichere cookies. Diese cookies benötigen die browser-Ausgabe der request über SSL - (https-Protokoll). Aber die aktuelle Anforderung ist nicht über SSL.
Stack trace:
System.Web.HttpException: Die Anwendung ist so konfiguriert Problem sichere cookies. Diese cookies benötigen die browser-Ausgabe der request über SSL - (https-Protokoll). Aber die aktuelle Anforderung ist nicht über SSL.
System.Web.Sicherheit.FormsAuthentication.SetAuthCookie(String userName, Boolean createPersistentCookie, String strCookiePath)
Tritt das problem auf meinem lokalen Rechner (auch wenn es konfiguriert ist, für den HTTPs-Zugriff) und auf dem live-server (die auch auf HTTPs)
Kann mir jemand helfen mit diesem Problem? Danke.
- Greifen Sie auf die Seite mit https? Wenn Sie MVC können Sie erzwingen dies mit der [RequireHttps] - Attribut auf die genannte Aktion (get UND post)
- Ja, die ganze Anwendung ist auf HTTPs, sodass die Anforderung erfolgt über HTTPs. Ich bin mit .NET Webforms, Framework 3.5
- Hmm, das sollte gut genug sein. Beste Sache, die ich mit oben kommen kann ist vielleicht nutzt du einen proxy (z.B.: fiddler'). Wenn nicht bin ich blank 😐
- Ja, konfiguriert in meiner lokalen Umgebung, und es scheint, dass gab es einige Probleme mit der config-Dateien. Ich werde auch überprüfen, auf die live-server. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist ein wenig neben dem Punkt, aber immer noch relevant, was Sie versuchen zu erreichen. Ihre Annahme, dass mit der
Secure
fahne auf einem cookie-Schutz vor XSS ist falsch. Das secure-flag bedeutet einfach, dass das cookie nur an per HTTPS.Die Flagge, die Sie eigentlich suchen, ist die
HttpOnly
Flagge. DieHttpOnly
flag bewirkt, dass der browser nur die Cookies als Teil von HTTP/S-Anfragen. Der browser wird dann leugnen, client-side code (JavaScript, Flash, etc.) Zugriff auf die cookie, damit der Schutz gegen XSS.Alle, dass gesagt wird, Sie sollten beide Flaggen zum Schutz der empfindlichen cookies (wie session-cookies).