Esempio n. 1
0
        public void ChangeNamedPermissionSet_Reserved_Everything()
        {
            PolicyLevel   pl = Load(minimal, PolicyLevelType.Machine);
            PermissionSet ps = new PermissionSet(PermissionState.None);

            pl.ChangeNamedPermissionSet("Everything", ps);
        }
Esempio n. 2
0
        public void ChangeNamedPermissionSet_Reserved_LocalIntranet()
        {
            PolicyLevel   pl = Load(minimal, PolicyLevelType.Machine);
            PermissionSet ps = new PermissionSet(PermissionState.None);

            pl.ChangeNamedPermissionSet("LocalIntranet", ps);
        }
Esempio n. 3
0
        public void ChangeNamedPermissionSet_Reserved_Nothing()
        {
            PolicyLevel   pl = Load(minimal, PolicyLevelType.Machine);
            PermissionSet ps = new PermissionSet(PermissionState.None);

            pl.ChangeNamedPermissionSet("SkipVerification", ps);
        }
Esempio n. 4
0
        public void ChangeNamedPermissionSet_NotFound()
        {
            PolicyLevel        pl   = Load(minimal, PolicyLevelType.Machine);
            NamedPermissionSet nps2 = new NamedPermissionSet("Mono", PermissionState.None);

            pl.ChangeNamedPermissionSet("Mono", nps2);
        }
Esempio n. 5
0
        [Category("NotDotNet")]          // System.ExecutionEngineException on MS runtime (1.1)
#endif
        public void ChangeNamedPermissionSet()
        {
            PolicyLevel        pl   = Load(minimal, PolicyLevelType.Machine);
            NamedPermissionSet nps1 = new NamedPermissionSet("Mono", PermissionState.Unrestricted);

            pl.AddNamedPermissionSet(nps1);

            NamedPermissionSet nps2 = new NamedPermissionSet("Mono", PermissionState.None);

            // ExecutionEngineException here!
            pl.ChangeNamedPermissionSet("Mono", nps2);
        }
        }// struct CustomPages

        internal CSinglePermissionSet(NamedPermissionSet permSet, PolicyLevel pl, bool fReadOnly)
        {
            base.ReadOnly   = fReadOnly;
            m_sGuid         = "E90A7E88-FB3C-4734-8245-0BEBCB4E6D63";
            m_sHelpSection  = "";
            m_fReadShowHTML = false;
            m_fDeleted      = false;
            m_pl            = pl;

            m_psetWrapper          = new CPSetWrapper();
            m_psetWrapper.PSet     = permSet;
            m_psetWrapper.PolLevel = m_pl;

            m_hIcon        = CResourceStore.GetHIcon("permissionset_ico");
            m_sDisplayName = permSet.Name;

            m_alCustomPropPages = new ArrayList();

            // Set up the icons we'll be displaying for each permission
            m_hRestrictedIcon  = CResourceStore.GetHIcon("permission_ico");
            m_iRestrictedIndex = CResourceStore.GetIconCookie(m_hRestrictedIcon);

            m_hUnRestrictedIcon  = CResourceStore.GetHIcon("permission_ico");
            m_iUnRestrictedIndex = CResourceStore.GetIconCookie(m_hUnRestrictedIcon);

            m_fReadOnlyPermissionSet = false;
            try
            {
                // This line will throw an exception if we're trying to do this with a
                // reserved permission set
                m_pl.ChangeNamedPermissionSet(permSet.Name, permSet);
            }
            catch (Exception)
            {
                m_fReadOnlyPermissionSet = true;
            }

            m_taskpad = new CSinglePermSetTaskPad(this);

            m_oResults       = m_taskpad;
            m_aPropSheetPage = null;

            // Get the permissions
            GenerateGivenPermissionsStringList();

            m_permProps = null;
        }// CSinglePermissionSet
Esempio n. 7
0
        public static void PolicyLevelCallMethods()
        {
            PolicyLevel        pl  = (PolicyLevel)Activator.CreateInstance(typeof(PolicyLevel), true);
            NamedPermissionSet nps = new NamedPermissionSet("test");

            pl.AddNamedPermissionSet(nps);
            nps = pl.ChangeNamedPermissionSet("test", new PermissionSet(new Permissions.PermissionState()));
            PolicyLevel.CreateAppDomainLevel();
            nps = pl.GetNamedPermissionSet("test");
            pl.Recover();
            NamedPermissionSet nps2 = pl.RemoveNamedPermissionSet(nps);

            nps2 = pl.RemoveNamedPermissionSet("test");
            pl.Reset();
            Evidence        evidence = new Evidence();
            PolicyStatement ps       = pl.Resolve(evidence);
            CodeGroup       cg       = pl.ResolveMatchingCodeGroups(evidence);
            SecurityElement se       = new SecurityElement("");

            pl.FromXml(se);
            se = pl.ToXml();
        }
Esempio n. 8
0
        public static void PolicyLevelCallMethods()
        {
            PolicyLevel        pl  = (PolicyLevel)FormatterServices.GetUninitializedObject(typeof(PolicyLevel));
            NamedPermissionSet nps = new NamedPermissionSet("test");

            pl.AddNamedPermissionSet(nps);
            nps = pl.ChangeNamedPermissionSet("test", new PermissionSet(new Permissions.PermissionState()));
#pragma warning disable 618
            PolicyLevel.CreateAppDomainLevel();
#pragma warning restore 618
            nps = pl.GetNamedPermissionSet("test");
            pl.Recover();
            NamedPermissionSet nps2 = pl.RemoveNamedPermissionSet(nps);
            nps2 = pl.RemoveNamedPermissionSet("test");
            pl.Reset();
            Evidence        evidence = new Evidence();
            PolicyStatement ps       = pl.Resolve(evidence);
            CodeGroup       cg       = pl.ResolveMatchingCodeGroups(evidence);
            SecurityElement se       = new SecurityElement("");
            pl.FromXml(se);
            se = pl.ToXml();
        }
Esempio n. 9
0
    public static void CreateAPolicyLevel()
    {
        try
        {
            //<Snippet2>
            // Create an AppDomain policy level.
            PolicyLevel pLevel = PolicyLevel.CreateAppDomainLevel();
            //</Snippet2>
            // The root code group of the policy level combines all
            // permissions of its children.
            UnionCodeGroup rootCodeGroup;
            PermissionSet  ps = new PermissionSet(PermissionState.None);
            ps.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));

            rootCodeGroup = new UnionCodeGroup(
                new AllMembershipCondition(),
                new PolicyStatement(ps, PolicyStatementAttribute.Nothing));

            // This code group grants FullTrust to assemblies with the strong
            // name key from this assembly.
            UnionCodeGroup myCodeGroup = new UnionCodeGroup(
                new StrongNameMembershipCondition(
                    new StrongNamePublicKeyBlob(GetKey()),
                    null,
                    null),
                new PolicyStatement(new PermissionSet(PermissionState.Unrestricted),
                                    PolicyStatementAttribute.Nothing)
                );
            myCodeGroup.Name = "My CodeGroup";


            //<Snippet4>
            // Add the code groups to the policy level.
            rootCodeGroup.AddChild(myCodeGroup);
            pLevel.RootCodeGroup = rootCodeGroup;
            Console.WriteLine("Permissions granted to all code running in this AppDomain level: ");
            Console.WriteLine(rootCodeGroup.ToXml());
            Console.WriteLine("Child code groups in RootCodeGroup:");
            IList       codeGroups = pLevel.RootCodeGroup.Children;
            IEnumerator codeGroup  = codeGroups.GetEnumerator();
            while (codeGroup.MoveNext())
            {
                Console.WriteLine("\t" + ((CodeGroup)codeGroup.Current).Name);
            }
            //</Snippet4>
            //<Snippet5>
            Console.WriteLine("Demonstrate adding and removing named permission sets.");
            Console.WriteLine("Original named permission sets:");
            ListPermissionSets(pLevel);
            NamedPermissionSet myInternet = pLevel.GetNamedPermissionSet("Internet");
            //</Snippet5>
            myInternet.Name = "MyInternet";
            //<Snippet6>
            pLevel.AddNamedPermissionSet(myInternet);
            //</Snippet6>
            Console.WriteLine("\nNew named permission sets:");
            ListPermissionSets(pLevel);
            myInternet.RemovePermission(typeof(System.Security.Permissions.FileDialogPermission));
            //<Snippet7>
            pLevel.ChangeNamedPermissionSet("MyInternet", myInternet);
            //</Snippet7>
            //<Snippet8>
            pLevel.RemoveNamedPermissionSet("MyInternet");
            //</Snippet8>
            Console.WriteLine("\nCurrent permission sets:");
            ListPermissionSets(pLevel);
            pLevel.AddNamedPermissionSet(myInternet);
            Console.WriteLine("\nUpdated named permission sets:");
            ListPermissionSets(pLevel);
            //<Snippet9>
            pLevel.Reset();
            //</Snippet9>
            Console.WriteLine("\nReset named permission sets:");
            ListPermissionSets(pLevel);
            //<Snippet10>
            Console.WriteLine("\nType property = " + pLevel.Type.ToString());
            //</Snippet10>
            //<Snippet11>
            Console.WriteLine("The result of GetHashCode is " + pLevel.GetHashCode().ToString());
            //</Snippet11>
            Console.WriteLine("StoreLocation property for the AppDomain level is empty, since AppDomain policy " +
                              "cannot be saved to a file.");
            Console.WriteLine("StoreLocation property = " + pLevel.StoreLocation);
            //<Snippet12>
            PolicyLevel pLevelCopy = PolicyLevel.CreateAppDomainLevel();
            // Create a copy of the PolicyLevel using ToXml/FromXml.
            pLevelCopy.FromXml(pLevel.ToXml());

            if (ComparePolicyLevels(pLevel, pLevelCopy))
            {
                Console.WriteLine("The ToXml/FromXml roundtrip was successful.");
            }
            else
            {
                Console.WriteLine("ToXml/FromXml roundtrip failed.");
            }
            //</Snippet12>
            Console.WriteLine("Show the result of resolving policy for evidence unique to the AppDomain policy level.");
            Evidence myEvidence = new Evidence(new object[] { myCodeGroup }, null);
            CheckEvidence(pLevel, myEvidence);
            return;
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
            return;
        }
    }
Esempio n. 10
0
        public void ChangeNamedPermissionSet_NullPermissionSet()
        {
            PolicyLevel pl = Load(minimal, PolicyLevelType.Machine);

            pl.ChangeNamedPermissionSet("Mono", null);
        }