Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在asp.net mvc中读取时Cookie不完整,但在浏览器中已完成_C#_Asp.net_Asp.net Mvc_Cookies - Fatal编程技术网

C# 在asp.net mvc中读取时Cookie不完整,但在浏览器中已完成

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

如果cookie随请求一起从浏览器发送到asp.net mvc端点,则该cookie是不完整的(有时)。cookie的内容是一个小的json对象,它包含一些信息(大约400个字符长)

饼干切了57个字符

cookies是这样添加的(
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;
}