private void SilverlightPolicyCallback (IAsyncResult result)
{
WebRequest wreq = (result.AsyncState as WebRequest);
BrowserHttpWebResponse wres = (BrowserHttpWebResponse) wreq.EndGetResponse (result);
policy = CrossDomainPolicyManager.BuildSilverlightPolicy (wres);
if (policy != null) {
// we got our policy so we can proceed with the main request
GetResponse (this.Method, uri, true);
} else {
// no policy but we get a second chance to try a Flash policy
Uri flash_policy_uri = CrossDomainPolicyManager.GetFlashPolicyUri (wres.ResponseUri);
BrowserHttpWebRequestInternal preq = new BrowserHttpWebRequestInternal (null, flash_policy_uri);
preq.BeginGetResponse (new AsyncCallback (FlashPolicyCallback), preq);
}
}