0

現在SPAに取り組んでおり、jquery - ajaxを介してのみログインを実現したいと考えています。これは実際には正常に機能しますが、ページを閉じてからページに戻ると、ログインしません。

資格情報を提供した後、リダイレクトがないため、これは明らかに発生します。これは避けたいと思います。

問題は、どうにかして、サーバーから jquery を使用してクライアントに Cookie を送信し、そこからブラウザーに設定して、ユーザーが戻ってきたときにサインインしたままにすることは可能ですか?

ありがとう

4

1 に答える 1

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

これをどこで見つけたか思い出せない

于 2013-06-25T10:08:12.303 に答える