我正在尝试在javascript中设置会话cookie,如下所示:
document.cookie = 'name=alex; path=/'
Run Code Online (Sandbox Code Playgroud)
但即使我退出浏览器并再次启动浏览器,Chrome也不会将其删除.
我检查了Firefox和Opera,两者都按预期工作 - 他们在浏览器退出时删除了会话cookie.
Chrome是否只是忽略过期规则?
我检查了多个操作系统,发现会话cookie在Windows XP和Ubuntu中的Chrome上被删除,但在Mac OSX Lion中没有.
我有一个页面,当你按"注销"它会重定向到login.aspx有一个Page_Load方法调用的页面FormsAuthentication.SignOut().
母版页会显示在屏幕的右上角的"注销"链接并显示它的条件Page.User.Identity.IsAuthenticated是true.然而,通过单步执行代码后,该signout方法不会自动设置IsAuthenticated到false这是相当恼人的,任何想法?
我正在构建一个MVC应用程序.它表现得如此奇怪.如果我在我的开发服务器(visual studio调试)上运行它,即使我通过更改web.config多次重启我的应用程序,它运行正常,但是当我托管它时,它表现得如此奇怪.
对于第一次加载,一切正常.我可以加载所有页面,通过ajax等发布正常,但是在我重新启动服务器HttpRuntime.UnloadAppDomain();后,每次我通过ajax发布时,我总是得到
内部服务器错误500
我不知道应用程序发生了什么,但我怀疑客户端(用户)缓存/ cookie出了什么问题.
我将[ValidateJsonAntiForgeryToken]属性用于接收帖子的控制器函数.
[HttpPost]
[ValidateJsonAntiForgeryToken]
public JsonResult LoadPage(int id, string returnUrl, PageFormViewModel pageForm, string jsonFormModel)
Run Code Online (Sandbox Code Playgroud)
这是处理json验证令牌的代码
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public class ValidateJsonAntiForgeryTokenAttribute : FilterAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{
if (filterContext == null)
{
throw new ArgumentNullException("filterContext");
}
var httpContext = filterContext.HttpContext;
var cookie = httpContext.Request.Cookies[AntiForgeryConfig.CookieName];
AntiForgery.Validate(cookie != null ? cookie.Value : null, httpContext.Request.Headers["__RequestVerificationToken"]);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我发布它的示例:
var getURL = $('#GetURL').val();
var returnUrl = …Run Code Online (Sandbox Code Playgroud) 试过了
if (Request.Cookies["IsGuest"] != null)
{
Response.Cookies["IsGuest"].Expires = DateTime.Now.AddDays(-1);
//HttpCookie myCookie = new HttpCookie("IsGuest");
//myCookie.Expires = DateTime.Now.AddDays(-1d);
//Response.Cookies.Add(myCookie);
}
string a = Request.Cookies["IsGuest"].Value;
Run Code Online (Sandbox Code Playgroud)
并尝试通过注释未注释的代码和注释注释的代码,但是
string a = Request.Cookies["IsGuest"].Value;
Run Code Online (Sandbox Code Playgroud)
始终运行,Request.Cookies["IsGuest"]永不运行null