internal static int MapUrlToZone(Uri url) { AppSecurityManager.EnsureSecurityManager(); int result; AppSecurityManager._secMgr.MapUrlToZone(BindUriHelper.UriToString(url), out result, 0); return(result); }
private static LaunchResult CanNavigateToUrlWithZoneCheck(Uri originatingUri, Uri destinationUri) { AppSecurityManager.EnsureSecurityManager(); bool flag = UnsafeNativeMethods.CoInternetIsFeatureEnabled(1, 2) != 1; int num = AppSecurityManager.MapUrlToZone(destinationUri); Uri uri = null; if (Application.Current.MimeType != MimeType.Document) { uri = BrowserInteropHelper.Source; } else if (destinationUri.IsFile && Path.GetExtension(destinationUri.LocalPath).Equals(DocumentStream.XpsFileExtension, StringComparison.OrdinalIgnoreCase)) { num = 3; } int num2; if (uri != null) { num2 = AppSecurityManager.MapUrlToZone(uri); } else { bool flag2 = SecurityHelper.CheckUnmanagedCodePermission(); if (flag2) { return(LaunchResult.Launched); } num2 = 3; uri = originatingUri; } if ((!flag && ((num2 != 3 && num2 != 4) || num != 0)) || (flag && (num2 == num || (num2 <= 4 && num <= 4 && (num2 < num || ((num2 == 2 || num2 == 1) && (num == 2 || num == 1))))))) { return(LaunchResult.Launched); } return(AppSecurityManager.CheckBlockNavigation(uri, destinationUri, flag)); }