从ArcGIS Online获取令牌到期时间

时间:2015-04-20 05:36:43

标签: c# arcgis arcmap

我正在使用以下方法登录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

那么当我的令牌即将到期时,我怎么知道这个长值呢?

1 个答案:

答案 0 :(得分:2)

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

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