2016-08-19 62 views
0

讀取cookie與簡單的舊ASP.NET讀取cookie一樣容易掌握HttpContext.Current.Request對象,但在DNX中不存在這樣的對象。如何使用Microsoft.AspNet(DNX)

如何檢查cookie值以更改它的響應?

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

我現在想,基於cookie的值,僅返回key代替value ......在「老好天」我可以很容易做到:

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; 
} 

,但我們不再有權訪問這樣的對象......在控制器之外訪問Cookies有什麼竅門?

回答

0

在ASP.NET Core中沒有任何東西是靜態的HttpContext.Current。你需要通過路徑(從你的控制器到使用方法)或者使用依賴注入來獲取HttpContext(通過IHttpContextAccessor,它需要在之前提供)。然後您可以使用httpContext.Request.Cookies.Get("showonlykeys")來獲取該值。

+0

ps。 DNX有點過時,不再支持。更新到RTM! – Thomas