我有发送身份验证cookie到ASP.NET MVC应用程序,用作后勤应用ASP.NET应用程序。ASP.NET MVC 4饼干消失
我添加了一个全局筛选器来检查身份验证Cookie每个控制器动作。如果cookie存在,它允许用户进入页面。
的代码看起来是这样的:
public class SecurityFilter : FilterAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{
// TODO: For some reason .AUTHCookie cookie isn't exist in request context of filter,
HttpCookie cookie = filterContext.RequestContext.HttpContext.Request.Cookies[".AUTHCookie "];
if (cookie != null) {
从另一个方面,我可以看到从ASP.NET应用程序中Application_BeginRequest
事件在Global.asax文件发送的cookie。
在哪里,为什么饼干消失了?在MVC请求处理管道的哪一部分丢弃了Cookie?
protected void Application_BeginRequest(object sender, EventArgs e)
{
var cookies = HttpContext.Current.Request.Cookies;
// HERE I CAN SEE BOTH cookies. In filter action only one cookie was found. The authentication cookie is thrown somewhere ...
}
确保cookie路径为“/”,它有足够的到期日期。 – Nick
你是什么意思的单词“足够”?是{01/01/0001 00:00:00}是否足够? – StringBuilder
尝试期满设定成类似'DateTime.UtcNow.AddDays(1);'可能是该浏览器认为与日期时间作为上述过期该cookie。 – Nick