public static BrowserBasedSecurityContext GetInstance(string ecsServiceAddress, string applicationName, string partnerName, bool forceNewInstance)
        {
            if (string.IsNullOrEmpty(partnerName))
            {
                throw new Exception("PartnerName cannot be null.");
            }

            if (instances == null)
            {
                lock (Lock)
                {
                    instances = new Dictionary <string, BrowserBasedSecurityContext>();
                }
            }

            lock (Lock)
            {
                if (!instances.ContainsKey(partnerName) || forceNewInstance)
                {
                    TokenCacheObject tokenCache = new TokenCacheObject(Environment.UserName, partnerName, applicationName, ecsServiceAddress);
                    if (forceNewInstance)
                    {
                        tokenCache.ClearCache();
                    }
                    instances[partnerName] = new BrowserBasedSecurityContext(ecsServiceAddress, applicationName, partnerName, tokenCache);
                }
            }
            return(instances[partnerName]);
        }
        public static BrowserBasedSecurityContext GetInstance(string ecsServiceAddress, string applicationName, string partnerName, bool forceNewInstance)
        {
            if (string.IsNullOrEmpty(partnerName))
            {
                throw new Exception("PartnerName cannot be null.");
            }

            if (instances == null)
            {
                lock (Lock)
                {
                    instances = new Dictionary<string, BrowserBasedSecurityContext>();
                }
            }

            lock (Lock)
            {
                if (!instances.ContainsKey(partnerName) || forceNewInstance)
                {
                    instances[partnerName] = new BrowserBasedSecurityContext(ecsServiceAddress, applicationName, partnerName);
                }
            }
            return instances[partnerName];
        }