【问题标题】:ASP.NET Identity authentication signs the user out after browser refreshASP.NET 身份验证在浏览器刷新后将用户注销
【发布时间】:2015-12-17 16:03:48
【问题描述】:

我使用 ASP.NET Identity 进行单页应用程序身份验证,一切正常,但是当我刷新页面时,用户会自动退出。这个问题的解决方案是什么?能给我介绍一个完整的样本或文章吗?

【问题讨论】:

    标签: asp.net-web-api2 asp.net-identity single-page-application


    【解决方案1】:

    经过一番挣扎,我终于找到了答案。我需要像这样将令牌存储到“sessionStorage”:

        var sessionToken = 'token';
        var sessionAuthenticated = 'auth';
        var sessionUser = 'user';
        var sessionIsARefresh = 'refresh';
    
        window.onbeforeunload = function () {
            sessionStorage.setItem(sessionAuthenticated, clientModel.authenticated());
            sessionStorage.setItem(sessionUser, clientModel.username());
            sessionStorage.setItem(sessionToken, adminModel.accessToken());
            sessionStorage.setItem(sessionIsARefresh,true);
        }
    
    $(document).ready(function () {
        if (sessionStorage.getItem(sessionIsARefresh)) {
    
            adminModel.accessToken(sessionStorage.getItem(sessionToken));
            clientModel.authenticated(sessionStorage.getItem(sessionAuthenticated));
            clientModel.username(sessionStorage.getItem(sessionUser));
    
    
            getUser(clientModel.username());
            getNotificationTypes();         
    
        }
    }
    

    根据W3School,我发现 sessionStorage 比 cookie 更安全。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-10
      • 2010-11-07
      • 1970-01-01
      • 2010-09-30
      • 2019-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多