2016-08-19 6 views
0

mit einfachen alten ASP.NET Lesen eines Cookies war so einfach wie das Erlangen des HttpContext.Current.Request Objekts, aber in DNX gibt es kein solches Objekt.So lesen Sie Cookies mit Microsoft.AspNet (DNX)

Wie überprüft man einen Cookie-Wert, um die Antwort zu ändern?

public static string GetContentValueByKey(this Dictionary<string, string> content, string key) { 
    string value; 
    return content.TryGetValue(key, out value) ? value : key; 
} 

Ich möchte jetzt, basierend auf einem Cookie-Wert, geben nur die key stattdessen die value ... in den „guten alten Tage“ ich leicht tun konnte:

public static string GetContentValueByKey(this Dictionary<string, string> content, string key) { 
    string value; 
    var cookies = HttpContext.Current.Request.Cookies; 
    var showKeysOnly = cookies["showonlykeys"] != null && cookies["showonlykeys"] == "yes"; 
    return showKeysOnly ? key : content.TryGetValue(key, out value) ? value : key; 
} 

aber wir nicht mehr Zugriff auf ein solches Objekt haben ... Was ist der Trick, um auf die Cookies außerhalb eines Controllers zuzugreifen?

Antwort

0

In ASP.NET Core gibt es nichts als eine statische HttpContext.Current. Sie müssen entweder den Pfad durchgehen (von Ihrem Controller zur using-Methode) oder die Abhängigkeitsinjektion verwenden, um den HttpContext (über IHttpContextAccessor) abzurufen, der zuvor verfügbar gemacht werden muss. Dann können Sie httpContext.Request.Cookies.Get("showonlykeys") verwenden, um den Wert abzurufen.

+0

ps. DNX ist etwas veraltet und wird nicht mehr unterstützt. Update auf RTM! – Thomas