2013-04-26 54 views
0

目前正在使用SPA,我只想通過jquery-ajax實現登錄。 這實際上工作正常,但當關閉頁面,然後回到頁面,我從來沒有登錄。單頁應用:設置無重定向的認證Cookie

這obetouly發生,因爲提供憑據後,沒有重定向,我想避免。

所以問題是:是否有可能以某種方式將cookie從服務器發送到客戶端與jquery,並從那裏設置它在瀏覽器中,以便當用戶回來時,他仍然登錄?

謝謝

回答

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; 
    } 

不記得在那裏我發現這個

相關問題