从 ArcGIS Online 获取令牌过期时间

Get token expiration time From ArcGIS Online

我正在使用以下方法登录 ArcGIS 门户并获取令牌

public static IArcGISSingleSignon SingleSignon
        {
            get
            {
                if (_singleSignon == null)
                    _singleSignon = new ESRI.ArcGIS.SystemUI.ArcGISSingleSignonClass();
                return _singleSignon;
            }
        }

internal static void SignIn()
        {
            string bsToken = string.Empty, bsReferrer = string.Empty, bsUser = string.Empty;
            int IExpiration = 0;
            try
            {
                SingleSignon.GetToken(0, ref bsToken, ref bsReferrer, ref IExpiration, ref bsUser);
            }
            catch (System.Runtime.InteropServices.COMException)
            { }
        }

GetToken 方法的文档说明了 IExpiration

lExpiration is a parameter of type long

那么我如何根据这个 long 值知道我的令牌何时到期?

返回的值是令牌的到期时间,以毫秒为单位,自 1970 年 1 月 1 日(UTC)起。您可以通过

将其转换为当地时间
var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
return epoch.AddMilliseconds(longValue).ToLocalTime();