public void UIPermission_Windows_SafeTopLevelWindows() { UIPermission uip = new UIPermission(UIPermissionWindow.SafeTopLevelWindows); Assert.AreEqual(UIPermissionClipboard.NoClipboard, uip.Clipboard, "Clipboard"); Assert.AreEqual(UIPermissionWindow.SafeTopLevelWindows, uip.Window, "Window"); Assert.IsFalse(uip.IsUnrestricted(), "IsUnrestricted"); }
public void UIPermission_Clipboard_Own() { UIPermission uip = new UIPermission(UIPermissionClipboard.OwnClipboard); Assert.AreEqual(UIPermissionClipboard.OwnClipboard, uip.Clipboard, "Clipboard"); Assert.AreEqual(UIPermissionWindow.NoWindows, uip.Window, "Window"); Assert.IsFalse(uip.IsUnrestricted(), "IsUnrestricted"); }
public void PermissionStateUnrestricted() { UIPermission uip = new UIPermission(PermissionState.Unrestricted); Assert.AreEqual(UIPermissionClipboard.AllClipboard, uip.Clipboard, "Clipboard"); Assert.AreEqual(UIPermissionWindow.AllWindows, uip.Window, "Window"); Assert.IsTrue(uip.IsUnrestricted(), "IsUnrestricted"); SecurityElement se = uip.ToXml(); Assert.AreEqual("true", se.Attribute("Unrestricted"), "Xml-Unrestricted"); UIPermission copy = (UIPermission)uip.Copy(); Assert.AreEqual(UIPermissionClipboard.AllClipboard, uip.Clipboard, "Copy-Clipboard"); Assert.AreEqual(UIPermissionWindow.AllWindows, uip.Window, "Copy-Window"); Assert.IsTrue(uip.IsUnrestricted(), "Copy-IsUnrestricted"); }
public void PermissionStateNone() { UIPermission uip = new UIPermission(PermissionState.None); Assert.AreEqual(UIPermissionClipboard.NoClipboard, uip.Clipboard, "Clipboard"); Assert.AreEqual(UIPermissionWindow.NoWindows, uip.Window, "Window"); Assert.IsFalse(uip.IsUnrestricted(), "IsUnrestricted"); SecurityElement se = uip.ToXml(); Assert.IsNull(se.Attribute("Unrestricted"), "Xml-Unrestricted"); UIPermission copy = (UIPermission)uip.Copy(); Assert.AreEqual(UIPermissionClipboard.NoClipboard, uip.Clipboard, "Copy-Clipboard"); Assert.AreEqual(UIPermissionWindow.NoWindows, uip.Window, "Copy-Window"); Assert.IsFalse(uip.IsUnrestricted(), "Copy-IsUnrestricted"); }
public void Union() { UIPermission none = new UIPermission(PermissionState.None); UIPermission union = (UIPermission)none.Union(null); Compare(none, union, "none U null"); Assert.IsFalse(Object.ReferenceEquals(none, union), "!ReferenceEquals1"); Assert.IsTrue(none.IsSubsetOf(union), "none.IsSubsetOf (union)"); union = (UIPermission)none.Union(new UIPermission(PermissionState.None)); Assert.IsNull(union, "none U none"); Assert.IsTrue(none.IsSubsetOf(null), "none.IsSubsetOf (null)"); UIPermission unrestricted = new UIPermission(PermissionState.Unrestricted); union = (UIPermission)none.Union(unrestricted); Compare(unrestricted, union, "none U unrestricted"); Assert.IsTrue(union.IsUnrestricted(), "IsUnrestricted-1"); Assert.IsFalse(Object.ReferenceEquals(unrestricted, union), "!ReferenceEquals2"); Assert.IsTrue(none.IsSubsetOf(union), "none.IsSubsetOf (union)"); Assert.IsTrue(unrestricted.IsSubsetOf(union), "unrestricted.IsSubsetOf (union)"); union = (UIPermission)unrestricted.Union(unrestricted); Compare(unrestricted, union, "unrestricted U unrestricted"); Assert.IsTrue(union.IsUnrestricted(), "IsUnrestricted-2"); Assert.IsFalse(Object.ReferenceEquals(unrestricted, union), "!ReferenceEquals3"); Assert.IsTrue(unrestricted.IsSubsetOf(union), "unrestricted.IsSubsetOf (union)"); UIPermission clip_all = new UIPermission(UIPermissionClipboard.AllClipboard); UIPermission win_all = new UIPermission(UIPermissionWindow.AllWindows); union = (UIPermission)clip_all.Union(win_all); Compare(unrestricted, union, "clip_all U win_all"); Assert.IsTrue(union.IsUnrestricted(), "IsUnrestricted-3"); Assert.IsTrue(clip_all.IsSubsetOf(union), "clip_all.IsSubsetOf (union)"); Assert.IsTrue(win_all.IsSubsetOf(union), "win_all.IsSubsetOf (union)"); }
public void Unrestricted() { UIPermission uip = new UIPermission(PermissionState.None); SecurityElement se = uip.ToXml(); // attribute value is not case-sensitive se.AddAttribute("Unrestricted", "TRUE"); uip.FromXml(se); Assert.IsTrue(uip.IsUnrestricted(), "IsUnrestricted-TRUE"); uip = new UIPermission(PermissionState.None); // attribute name is not case-sensitive either!!! se.AddAttribute("UNRESTRICTED", "TRUE"); uip.FromXml(se); Assert.IsTrue(uip.IsUnrestricted(), "IsUnrestricted-UPPER"); }
public static void UIPermissionCallMethods() { UIPermission uip = new UIPermission(new PermissionState()); UIPermission uip2 = new UIPermission(new UIPermissionClipboard()); UIPermission uip3 = new UIPermission(new UIPermissionWindow()); UIPermission uip4 = new UIPermission(new UIPermissionWindow(), new UIPermissionClipboard()); IPermission ip = uip.Copy(); IPermission ip2 = uip.Intersect(ip); bool testbool = uip.IsSubsetOf(ip); testbool = uip.IsUnrestricted(); ip2 = uip.Union(ip); SecurityElement se = new SecurityElement(""); uip.FromXml(se); se = uip.ToXml(); }
private void Compare(UIPermission uip1, UIPermission uip2, string prefix) { Assert.AreEqual(uip1.Clipboard, uip2.Clipboard, prefix + ".Clipboard"); Assert.AreEqual(uip1.Window, uip2.Window, prefix + ".Window"); Assert.AreEqual(uip1.IsUnrestricted(), uip2.IsUnrestricted(), prefix + ".IsUnrestricted ()"); }
public void GetStandardPermissionSetLocalIntranetPermissionSetTest() { // Get a copy of LocalIntranet which is not extended with any same-site permission PermissionSet intranetBase = PermissionSetFactory.GetStandardPermissionSet(StandardPermissionSet.LocalIntranet, null); // It shouldn't be fully trusted, and should contain a set of well known permissions Assert.IsFalse(intranetBase.IsUnrestricted()); Assert.IsTrue(intranetBase.Count == 8 || intranetBase.Count == 10); // We should have SecurityPermission/Execution,Assertion,BindingRedirects SecurityPermission baseSecurityPermission = intranetBase.GetPermission(typeof(SecurityPermission)) as SecurityPermission; Assert.IsNotNull(baseSecurityPermission); Assert.AreEqual(SecurityPermissionFlag.Execution | SecurityPermissionFlag.Assertion | SecurityPermissionFlag.BindingRedirects, baseSecurityPermission.Flags); // Unrestricted FileDialogPermission FileDialogPermission baseFileDialogPermission = intranetBase.GetPermission(typeof(FileDialogPermission)) as FileDialogPermission; Assert.IsNotNull(baseFileDialogPermission); Assert.IsTrue(baseFileDialogPermission.IsUnrestricted()); // IsolatedStorageFilePermission/AssemblyIsolationByUser IsolatedStorageFilePermission baseIsostorePermission = intranetBase.GetPermission(typeof(IsolatedStorageFilePermission)) as IsolatedStorageFilePermission; Assert.IsNotNull(baseIsostorePermission); Assert.AreEqual(IsolatedStorageContainment.AssemblyIsolationByUser, baseIsostorePermission.UsageAllowed); // Unrestricted UIPermission UIPermission baseUIPermission = intranetBase.GetPermission(typeof(UIPermission)) as UIPermission; Assert.IsNotNull(baseUIPermission); Assert.IsTrue(baseUIPermission.IsUnrestricted()); // PrintingPermission/DefaultPrinting PrintingPermission basePrintingPermission = intranetBase.GetPermission(typeof(PrintingPermission)) as PrintingPermission; Assert.IsNotNull(basePrintingPermission); Assert.AreEqual(PrintingPermissionLevel.DefaultPrinting, basePrintingPermission.Level); // EnvironmentPermission/Read USERNAME EnvironmentPermission baseEnvironmentPermission = intranetBase.GetPermission(typeof(EnvironmentPermission)) as EnvironmentPermission; Assert.IsNotNull(baseEnvironmentPermission); Assert.AreEqual("USERNAME", baseEnvironmentPermission.GetPathList(EnvironmentPermissionAccess.Read)); // ReflectionPermission/ReflectionEmit ReflectionPermission baseReflectionPermission = intranetBase.GetPermission(typeof(ReflectionPermission)) as ReflectionPermission; Assert.IsNotNull(baseReflectionPermission); Assert.AreEqual(ReflectionPermissionFlag.ReflectionEmit, baseReflectionPermission.Flags); // Unrestricted DNS permission DnsPermission baseDnsPermission = intranetBase.GetPermission(typeof(DnsPermission)) as DnsPermission; Assert.IsNotNull(baseDnsPermission); Assert.IsTrue(baseDnsPermission.IsUnrestricted()); // Also check for WPF extensions MediaPermission baseMediaPermission = intranetBase.GetPermission(typeof(MediaPermission)) as MediaPermission; if (baseMediaPermission != null) { Assert.AreEqual(MediaPermissionAudio.SafeAudio, baseMediaPermission.Audio); Assert.AreEqual(MediaPermissionImage.SafeImage, baseMediaPermission.Image); Assert.AreEqual(MediaPermissionVideo.SafeVideo, baseMediaPermission.Video); } WebBrowserPermission baseWebPermission = intranetBase.GetPermission(typeof(WebBrowserPermission)) as WebBrowserPermission; if (baseWebPermission != null) { Assert.AreEqual(WebBrowserPermissionLevel.Safe, baseWebPermission.Level); } // Now try to extend with a local URL - we should get FileIOPermission Url localUrl = new Url(@"file://c:\windows"); PermissionSet intranetLocalExtended = PermissionSetFactory.GetStandardPermissionSet(StandardPermissionSet.LocalIntranet, localUrl); Assert.IsTrue(intranetBase.IsSubsetOf(intranetLocalExtended)); Assert.IsFalse(intranetLocalExtended.IsUnrestricted()); Assert.AreEqual(intranetBase.Count + 1, intranetLocalExtended.Count); FileIOPermission filePermission = intranetLocalExtended.GetPermission(typeof(FileIOPermission)) as FileIOPermission; Assert.IsNotNull(filePermission); Assert.IsFalse(filePermission.IsUnrestricted()); // Finally, try to extend with a Web URL, which should provide same site web access Url webUrl = new Url("htt://www.microsoft.com/"); PermissionSet intranetWebExtended = PermissionSetFactory.GetStandardPermissionSet(StandardPermissionSet.LocalIntranet, webUrl); Assert.IsTrue(intranetBase.IsSubsetOf(intranetWebExtended)); Assert.IsFalse(intranetWebExtended.IsUnrestricted()); Assert.AreEqual(intranetBase.Count + 1, intranetWebExtended.Count); WebPermission webPermission = intranetWebExtended.GetPermission(typeof(WebPermission)) as WebPermission; Assert.IsNotNull(webPermission); Assert.IsFalse(webPermission.IsUnrestricted()); }
}// onChangeClipboardOption protected override void PutValuesinPage() { m_cbWindowOptions.Items.Clear(); m_cbWindowOptions.Items.Add(CResourceStore.GetString("UIPermission:Allwindows")); m_cbWindowOptions.Items.Add(CResourceStore.GetString("UIPermission:Safetopwindows")); m_cbWindowOptions.Items.Add(CResourceStore.GetString("UIPermission:safesubwindows")); m_cbWindowOptions.Items.Add(CResourceStore.GetString("UIPermission:Nowindows")); m_cbClipboardOptions.Items.Clear(); m_cbClipboardOptions.Items.Add(CResourceStore.GetString("UIPermission:Allclipboard")); m_cbClipboardOptions.Items.Add(CResourceStore.GetString("UIPermission:pastingfromsamedomain")); m_cbClipboardOptions.Items.Add(CResourceStore.GetString("UIPermission:Noclipboard")); int nWindowPerm = 3; int nClipboardPerm = 2; UIPermission perm = (UIPermission)m_perm; if (perm.IsUnrestricted()) { m_radUnrestricted.Checked = true; m_ucOptions.Enabled = false; nWindowPerm = 0; nClipboardPerm = 0; } else { m_radGrantFollowingPermission.Checked = true; // First get the Windowing Permission if (perm.Window == UIPermissionWindow.AllWindows) { nWindowPerm = 0; } else if (perm.Window == UIPermissionWindow.SafeSubWindows) { nWindowPerm = 1; } else if (perm.Window == UIPermissionWindow.SafeTopLevelWindows) { nWindowPerm = 2; } else if (perm.Window == UIPermissionWindow.NoWindows) { nWindowPerm = 3; } // Now get the Clipboard permission if (perm.Clipboard == UIPermissionClipboard.AllClipboard) { nClipboardPerm = 0; } else if (perm.Clipboard == UIPermissionClipboard.OwnClipboard) { nClipboardPerm = 1; } else if (perm.Clipboard == UIPermissionClipboard.NoClipboard) { nClipboardPerm = 2; } } m_cbWindowOptions.SelectedIndex = nWindowPerm; m_cbClipboardOptions.SelectedIndex = nClipboardPerm; onChangeWindowOption(null, null); onChangeClipboardOption(null, null); }// PutValuesinPage