C# 为什么IE11会在请求之间丢弃cookie?

C# 为什么IE11会在请求之间丢弃cookie?,c#,asp.net-mvc,cookies,httpcookie,C#,Asp.net Mvc,Cookies,Httpcookie,我有一个C#应用程序,它使用cookies跟踪用户身份验证(非常标准的东西)。在进行身份验证时,将使用与包含用户/身份验证信息的数据库表相关的哈希值创建cookie 在Chrome/Safari/Edge中,这一点非常有效:在IE11中创建了cookie(我可以在登录确认页面的开发者工具中看到),但当单击内部链接时,用户会被踢回身份验证页面(通过ActionFilter,因为不存在cookie)查看登录表单时,cookie不再存在。从VisualStudio进行调试时,它似乎工作正常,在执行完全

我有一个C#应用程序,它使用cookies跟踪用户身份验证(非常标准的东西)。在进行身份验证时,将使用与包含用户/身份验证信息的数据库表相关的哈希值创建cookie

在Chrome/Safari/Edge中,这一点非常有效:在IE11中创建了cookie(我可以在登录确认页面的开发者工具中看到),但当单击内部链接时,用户会被踢回身份验证页面(通过ActionFilter,因为不存在cookie)查看登录表单时,cookie不再存在。从VisualStudio进行调试时,它似乎工作正常,在执行完全相同的登录过程时,它甚至会间歇性地在live server上工作

是什么导致IE11出现这种情况,而不是Chrome/Edge?(不幸的是,避免IE11不是一种选择)。即使Cookie设置为同时允许第一方和第三方、站点位于受信任站点列表中以及兼容性窗口中,也会发生这种情况

编辑:添加代码(减去键和值)

创建:

HttpCookie cookie = new HttpCookie("AppSettings");
cookie.Values["key"] = value;
cookie.Expires = DateTime.Now.AddDays(TMSCookie.CookieValidityDays); // 365
Response.Cookies.Add(cookie);
取回

// In MVC Filter
HttpCookie cookie = filterContext.HttpContext.Request.Cookies.Get("AppSettings");
// Otherwise
HttpCookie cookie = Request.Cookies.Get("AppSettings");
String value = cookie.Values["key"];

显示设置cookie的代码。Set/retrieve code added登录页面的URL是什么?而内部链接指向的页面呢?登录页面是/Authentication/login,内部链接指向/Activity/Index(或者可能只是/Activity/,我想这取决于Razor的HTML.RouteLink解析方式?)。请注意,这是一个MVC项目使用http代理(Fiddler)查看您的请求和响应发生了什么。