我正在将Web窗体应用程序转换为asp.net核心mvc。在我的Web表单应用程序中,有时在我设置了一些响应cookie后,其他代码需要查看它们是否已设置,如果是,请访问cookie的属性(即值,Expires,Secure,http)。在WebForms和MVC 5有可能遍历饼干和返回任何特定的饼干,像这样(老同学,我知道)如何在Asp.net Core MVC(aka Asp.Net 5 RC1)中检查响应cookie?
for(int i = 0; i < cookies.Count; i++) {
if(cookies[i].Name == cookieName) {
return cookies[i];
}
}
但在asp.net mvc的核心访问响应cookie的界面看起来是这样的:
基于该接口的,我不明白的方式进行检查,看是否有响应cookie存在并获得它的属性。但是有什么办法可以做到吗?
在一个操作方法中,我尝试在响应对象上设置两个cookie,然后立即尝试访问它们。但智能感知不显示任何方法,属性或索引,让我来访问它们:
有那么一刻,我想也许我可以用Response.Cookies.ToString();
,只是解析信息来找到我的饼干信息,但唉,ToString()
调用返回“Microsoft.AspNet.Http.Internal.ResponseCookies”,因为该对象不覆盖默认实现。
为了好玩,我还检查了GitHub的当前开发分支,看看自RC1以来界面是否发生了变化,但它没有。所以给定这个接口,我该如何检查响应cookie的存在并获取它的属性?我想过试图通过响应标头集合进行攻击,但这看起来很蹩脚。
您是否在您的操作方法中尝试了'Response.Cookies'? –
我有。我会更新这个问题来表明这一点。 –
哦,对不起。我的意思是'Request.Cookies',我的错误! –