Esempio n. 1
0
        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");
        }
Esempio n. 2
0
        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");
        }
Esempio n. 3
0
        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");
        }
Esempio n. 4
0
        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");
        }
Esempio n. 5
0
        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)");
        }
Esempio n. 6
0
        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");
        }
Esempio n. 7
0
        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();
        }
Esempio n. 8
0
 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 ()");
 }
Esempio n. 9
0
 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();
 }
Esempio n. 10
0
        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());
        }
Esempio n. 11
0
        }// 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