示例#1
0
        /// <summary>
        /// Obtains the next reader service during the discovery process
        /// being managed by a session variable tracking circle of trusts
        /// currently being checked.
        /// </summary>
        /// <param name="serviceProviderUtility">ServiceProviderUtility containing circle-of-trust information.</param>
        /// <returns>
        /// Returns the URL found in the currently checked circle-of-trust file if specified, null otherwise.
        /// </returns>
        public static Uri GetReaderServiceUrl(ServiceProviderUtility serviceProviderUtility)
        {
            Uri readerSvcUrl = null;

            // Obtain the list of currently tracked circle-of-trusts with
            // reader service if not already known.
            var cotList = new ArrayList();

            foreach (var cotName in serviceProviderUtility.CircleOfTrusts.Keys)
            {
                var cot = serviceProviderUtility.CircleOfTrusts[cotName];
                if (cot.ReaderServiceUrl != null)
                {
                    cotList.Add(cotName);
                }
            }

            var enumerator = cotList.GetEnumerator();

            if (enumerator.MoveNext())
            {
                // Try the first service in the list
                var cotName = (string)enumerator.Current;
                var cot     = serviceProviderUtility.CircleOfTrusts[cotName];
                readerSvcUrl = new Uri(cot.ReaderServiceUrl.AbsoluteUri);
            }

            return(readerSvcUrl);
        }
示例#2
0
        public TController CreateController <TController>(params object[] args)
        {
            var argsList = new List <object>(args);
            var view     = Instantiate(_btnPrefab, _canvas.transform); // нашел вью

            argsList.Add(view);
            return((TController)ServiceProviderUtility.CreateInstance <TController>(_container, argsList.ToArray())); //activatorUtilities
        }
        /// <summary>
        /// Obtains the next reader service during the discovery process
        /// being managed by a session variable tracking cirlce of trusts
        /// currently being checked.
        /// </summary>
        /// <param name="serviceProviderUtility">ServiceProviderUtility containing circle-of-trust information.</param>
        /// <param name="context">HttpContext containing session, request, and response objects.</param>
        /// <returns>
        /// Returns the URL found in the currently checked circle-of-trust file if specified, null otherwise.
        /// </returns>
        public static Uri GetReaderServiceUrl(ServiceProviderUtility serviceProviderUtility, HttpContext context)
        {
            HttpSessionState session = context.Session;
            Uri readerSvcUrl         = null;

            ArrayList cotList = (ArrayList)session[IdentityProviderDiscoveryUtils.CommonDomainDiscoverySessionAttribute];

            if (cotList == null)
            {
                // Obtain the list of currently tracked circle-of-trusts with
                // reader service if not already known.
                cotList = new ArrayList();
                foreach (string cotName in serviceProviderUtility.CircleOfTrusts.Keys)
                {
                    CircleOfTrust cot = (CircleOfTrust)serviceProviderUtility.CircleOfTrusts[cotName];
                    if (cot.ReaderServiceUrl != null)
                    {
                        cotList.Add(cotName);
                    }
                }
            }

            IEnumerator enumerator = cotList.GetEnumerator();

            if (enumerator.MoveNext())
            {
                // Try the first service in the list
                string cotName = (string)enumerator.Current;
                cotList.Remove(cotName);
                session[IdentityProviderDiscoveryUtils.CommonDomainDiscoverySessionAttribute] = cotList;
                CircleOfTrust cot = (CircleOfTrust)serviceProviderUtility.CircleOfTrusts[cotName];
                readerSvcUrl = new Uri(cot.ReaderServiceUrl.AbsoluteUri);
            }

            return(readerSvcUrl);
        }