目前正在开发SPA,我想通过jquery - ajax实现登录。 这实际上工作正常,但是当关闭页面然后返回页面时,我从未登录。
这显然是因为在提供凭据后,没有重定向,我想避免。
所以问题是:是否有可能以某种方式将cookie从服务器发送到客户端并使用jquery,并从那里将其设置在浏览器中,以便当用户返回时,他仍然登录?
由于
答案 0 :(得分:0)
回答问题。在服务器上,执行以下操作:
FormsAuthentication.SetAuthCookie(account.name, true);
System.Web.HttpCookie authCookie = this.RenewCurrentUser();
private System.Web.HttpCookie RenewCurrentUser()
{
System.Web.HttpCookie authCookie =
System.Web.HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
FormsAuthenticationTicket authTicket = null;
authTicket = FormsAuthentication.Decrypt(authCookie.Value);
if (authTicket != null && !authTicket.Expired)
{
FormsAuthenticationTicket newAuthTicket = authTicket;
if (FormsAuthentication.SlidingExpiration)
{
newAuthTicket = FormsAuthentication.RenewTicketIfOld(authTicket);
}
string userData = newAuthTicket.UserData;
string[] roles = userData.Split(',');
System.Web.HttpContext.Current.User =
new System.Security.Principal.GenericPrincipal(new FormsIdentity(newAuthTicket), roles);
}
}
return authCookie;
}
不记得我在哪里找到了这个