Exemplo n.º 1
0
        private static void OnTimerCallback(object state)
        {
            var data = (TokenRefreshData)state;

            try
            {
                var user = User.GetLoggedInUser(data.UserId);
                if (user != null)
                {
                    var sessionPointer = user.Handle.GetSessionPointer(data.RealmPath);
                    var session        = Session.Create(sessionPointer);
                    if (session != null)
                    {
                        RefreshAccessToken(session, reportErrors: false).ContinueWith(_ =>
                        {
                            user.Handle.Dispose();
                            session.Handle.Dispose();
                        });
                    }
                }
            }
            catch
            {
            }
            finally
            {
                Timer timer;
                if (_tokenRefreshTimers.TryRemove(data.RealmPath, out timer))
                {
                    timer.Dispose();
                }
            }
        }
Exemplo n.º 2
0
        private static void OnTimerCallback(object state)
        {
            var data = (TokenRefreshData)state;

            try
            {
                var user = User.GetLoggedInUser(data.UserId, data.ServerUrl);
                if (user != null &&
                    user.Handle.TryGetSession(data.RealmPath, out var sessionHandle))
                {
                    var session = new Session(sessionHandle);
                    RefreshAccessTokenAsync(session, reportErrors: false).ContinueWith(_ =>
                    {
                        user.Handle.Close();
                        session.CloseHandle();
                    });
                }
            }
            catch
            {
            }
            finally
            {
                if (_tokenRefreshTimers.TryRemove(data.RealmPath, out var timer))
                {
                    timer.Dispose();
                }
            }
        }