0
目前正在使用SPA,我只想通過jquery-ajax實現登錄。 這實際上工作正常,但當關閉頁面,然後回到頁面,我從來沒有登錄。單頁應用:設置無重定向的認證Cookie
這obetouly發生,因爲提供憑據後,沒有重定向,我想避免。
所以問題是:是否有可能以某種方式將cookie從服務器發送到客戶端與jquery,並從那裏設置它在瀏覽器中,以便當用戶回來時,他仍然登錄?
謝謝
目前正在使用SPA,我只想通過jquery-ajax實現登錄。 這實際上工作正常,但當關閉頁面,然後回到頁面,我從來沒有登錄。單頁應用:設置無重定向的認證Cookie
這obetouly發生,因爲提供憑據後,沒有重定向,我想避免。
所以問題是:是否有可能以某種方式將cookie從服務器發送到客戶端與jquery,並從那裏設置它在瀏覽器中,以便當用戶回來時,他仍然登錄?
謝謝
回答這個問題。在服務器上,這樣做:
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;
}
不記得在那裏我發現這個