static public FromStream ( Stream stream ) : ICrossDomainPolicy | ||
stream | Stream | |
return | ICrossDomainPolicy |
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); }
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); }