FromStream() static public method

static public FromStream ( Stream stream ) : ICrossDomainPolicy
stream Stream
return ICrossDomainPolicy
Example #1
0
        public static ICrossDomainPolicy BuildSilverlightPolicy(HttpWebResponse response)
        {
            // return null if no Silverlight policy was found, since we offer a second chance with a flash policy
            if ((response.StatusCode != HttpStatusCode.OK) || !CheckContentType(response.ContentType))
            {
                return(null);
            }

            ICrossDomainPolicy policy = null;

            try
            {
                policy = ClientAccessPolicy.FromStream(response.GetResponseStream());
                if (policy != null)
                {
                    AddPolicy(response.ResponseUri, policy);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(String.Format("CrossDomainAccessManager caught an exception while reading {0}: {1}",
                                                response.ResponseUri, ex));
                // and ignore.
            }
            return(policy);
        }
Example #2
0
        public static ClientAccessPolicy CreateForEndPoint(IPEndPoint endpoint, SocketClientAccessPolicyProtocol protocol)
        {
            Stream s = null;

            switch (protocol)
            {
            case SocketClientAccessPolicyProtocol.Tcp:
                s = GetPolicyStream(endpoint);
                break;

            case SocketClientAccessPolicyProtocol.Http:
                // <quote>It will NOT attempt to download the policy via the custom TCP protocol if the
                // policy check fails.</quote>
                // http://blogs.msdn.com/ncl/archive/2010/04/15/silverlight-4-socket-policy-changes.aspx
                string url = String.Format("http://{0}:80{1}", endpoint.Address.ToString(),
                                           CrossDomainPolicyManager.ClientAccessPolicyFile);
                s = GetPolicyStream(new Uri(url));
                break;
            }

            if ((s == null) || (s.Length == 0))
            {
                return(null);
            }

            ClientAccessPolicy policy = null;

            try
            {
                policy = (ClientAccessPolicy)ClientAccessPolicy.FromStream(s);
            }
            catch (Exception ex)
            {
                Console.WriteLine(String.Format("CrossDomainAccessManager caught an exception while reading {0}: {1}",
                                                endpoint, ex.Message));
                // and ignore.
            }

            return(policy);
        }