C# 在asp.net mvc中读取时Cookie不完整,但在浏览器中已完成
如果cookie随请求一起从浏览器发送到asp.net mvc端点,则该cookie是不完整的(有时)。cookie的内容是一个小的json对象,它包含一些信息(大约400个字符长) 饼干切了57个字符 cookies是这样添加的(C# 在asp.net mvc中读取时Cookie不完整,但在浏览器中已完成,c#,asp.net,asp.net-mvc,cookies,C#,Asp.net,Asp.net Mvc,Cookies,如果cookie随请求一起从浏览器发送到asp.net mvc端点,则该cookie是不完整的(有时)。cookie的内容是一个小的json对象,它包含一些信息(大约400个字符长) 饼干切了57个字符 cookies是这样添加的(AddCookieObject): 如果我使用GetCookieObject读取Cookie,则不完整,json解析失败: protected T GetCookieObject<T>(string name) { var manager = ne
AddCookieObject
):
如果我使用GetCookieObject
读取Cookie,则不完整,json解析失败:
protected T GetCookieObject<T>(string name)
{
var manager = new LogManager();
string json = GetCookieValue(name);
try
{
if (json != null)
manager.Warning($"Cookie: {name}\r\n{json}");
return json != null ? JsonConvert.DeserializeObject<T>(json) : default(T);
}
catch (Exception)
{
manager.Warning($"Invalid cookie: {name}: {json ?? "<empty>"}");
return default(T);
}
}
protected string GetCookieValue(string name)
{
var cookie = GetCookie(name);
return cookie != null ? cookie.Value : null;
}
protected HttpCookie GetCookie(string name)
{
var cookies = ControllerContext.HttpContext.Request.Cookies;
return cookies.AllKeys.Contains(name) ? cookies[name] : null;
}
protectedt GetCookieObject(字符串名称)
{
var manager=new LogManager();
字符串json=GetCookieValue(名称);
尝试
{
if(json!=null)
警告($“Cookie:{name}\r\n{json}”);
返回json!=null?JsonConvert.DeserializeObject(json):默认值(T);
}
捕获(例外)
{
警告($“无效cookie:{name}:{json???”});
返回默认值(T);
}
}
受保护的字符串GetCookieValue(字符串名称)
{
var cookie=GetCookie(名称);
返回cookie!=null?cookie。值:null;
}
受保护的HttpCookie GetCookie(字符串名称)
{
var cookies=ControllerContext.HttpContext.Request.cookies;
返回cookies.allkey.Contains(名称)?cookies[名称]:null;
}
谢谢你的帮助 您能否使用fiddler或任何网络监控工具检查cookie是否正确发送到服务器?
protected T GetCookieObject<T>(string name)
{
var manager = new LogManager();
string json = GetCookieValue(name);
try
{
if (json != null)
manager.Warning($"Cookie: {name}\r\n{json}");
return json != null ? JsonConvert.DeserializeObject<T>(json) : default(T);
}
catch (Exception)
{
manager.Warning($"Invalid cookie: {name}: {json ?? "<empty>"}");
return default(T);
}
}
protected string GetCookieValue(string name)
{
var cookie = GetCookie(name);
return cookie != null ? cookie.Value : null;
}
protected HttpCookie GetCookie(string name)
{
var cookies = ControllerContext.HttpContext.Request.Cookies;
return cookies.AllKeys.Contains(name) ? cookies[name] : null;
}