public void Unrestricted()
        {
            ServiceControllerPermissionAttribute a = new ServiceControllerPermissionAttribute(SecurityAction.Assert);

            a.Unrestricted = true;
            ServiceControllerPermission wp = (ServiceControllerPermission)a.CreatePermission();

            Assert.IsTrue(wp.IsUnrestricted(), "IsUnrestricted");

            a.Unrestricted = false;
            wp             = (ServiceControllerPermission)a.CreatePermission();
            Assert.IsFalse(wp.IsUnrestricted(), "!IsUnrestricted");
        }
Beispiel #2
0
        public void PermissionState_Bad()
        {
            PermissionState             ps  = (PermissionState)77;
            ServiceControllerPermission scp = new ServiceControllerPermission(ps);

            Assert.IsFalse(scp.IsUnrestricted(), "IsUnrestricted");
        }
Beispiel #3
0
        public void Union_None()
        {
            ServiceControllerPermission scp1 = new ServiceControllerPermission(PermissionState.None);

            foreach (ServiceControllerPermissionAccess scpa in AllAccess)
            {
                ServiceControllerPermission scp2 = new ServiceControllerPermission(PermissionState.None);
                scp2.PermissionEntries.Add(new ServiceControllerPermissionEntry(scpa, "localhost", scpa.ToString()));
                ServiceControllerPermission union = (ServiceControllerPermission)scp1.Union(scp2);
                Assert.IsFalse(union.IsUnrestricted(), "target.IsUnrestricted " + scpa.ToString());
                Assert.AreEqual(1, union.PermissionEntries.Count, "target.Count " + scpa.ToString());

                union = (ServiceControllerPermission)scp2.Union(scp1);
                Assert.IsFalse(union.IsUnrestricted(), "source.IsUnrestricted " + scpa.ToString());
                Assert.AreEqual(1, union.PermissionEntries.Count, "source.Count " + scpa.ToString());
            }
        }
Beispiel #4
0
        public void PermissionState_Unrestricted()
        {
            PermissionState             ps  = PermissionState.Unrestricted;
            ServiceControllerPermission scp = new ServiceControllerPermission(ps);

            Assert.AreEqual(0, scp.PermissionEntries.Count, "PermissionEntries");
            Assert.IsTrue(scp.IsUnrestricted(), "IsUnrestricted");

            SecurityElement se = scp.ToXml();

            // only class and version are present
            Assert.AreEqual("true", se.Attribute("Unrestricted"), "Xml-Unrestricted");
            Assert.IsNull(se.Children, "Xml-Children");

            ServiceControllerPermission copy = (ServiceControllerPermission)scp.Copy();

            Assert.IsFalse(Object.ReferenceEquals(scp, copy), "ReferenceEquals");
            Assert.AreEqual(scp.PermissionEntries.Count, copy.PermissionEntries.Count, "copy-PermissionEntries");
            Assert.AreEqual(scp.IsUnrestricted(), copy.IsUnrestricted(), "copy-IsUnrestricted ()");
        }
Beispiel #5
0
 public void Union_Self()
 {
     foreach (ServiceControllerPermissionAccess scpa in AllAccess)
     {
         ServiceControllerPermission scp = new ServiceControllerPermission(PermissionState.None);
         scp.PermissionEntries.Add(new ServiceControllerPermissionEntry(scpa, "localhost", scpa.ToString()));
         ServiceControllerPermission union = (ServiceControllerPermission)scp.Union(scp);
         Assert.IsFalse(union.IsUnrestricted(), "IsUnrestricted " + scpa.ToString());
         Assert.AreEqual(1, union.PermissionEntries.Count, "Count " + scpa.ToString());
     }
 }
        public void Default()
        {
            ServiceControllerPermissionAttribute a = new ServiceControllerPermissionAttribute(SecurityAction.Assert);

            Assert.AreEqual(a.ToString(), a.TypeId.ToString(), "TypeId");
            Assert.IsFalse(a.Unrestricted, "Unrestricted");
            Assert.AreEqual(".", a.MachineName, "MachineName");
            Assert.AreEqual(ServiceControllerPermissionAccess.Browse, a.PermissionAccess, "PermissionAccess");

            ServiceControllerPermission sp = (ServiceControllerPermission)a.CreatePermission();

            Assert.IsFalse(sp.IsUnrestricted(), "IsUnrestricted");
        }
        }// CreateDataTable

        protected override void PutValuesinPage()
        {
            // Put in the text for the radio buttons
            m_radUnrestricted.Text             = CResourceStore.GetString("ServiceControllerPerm:GrantUnrestrict");
            m_radGrantFollowingPermission.Text = CResourceStore.GetString("ServiceControllerPerm:GrantFollowing");

            ServiceControllerPermission perm = (ServiceControllerPermission)m_perm;

            CheckUnrestricted(perm);

            if (!perm.IsUnrestricted())
            {
                IEnumerator enumer = perm.PermissionEntries.GetEnumerator();
                while (enumer.MoveNext())
                {
                    ServiceControllerPermissionEntry scpe = (ServiceControllerPermissionEntry)enumer.Current;
                    DataRow newRow;
                    newRow = m_dt.NewRow();

                    newRow["Machine"] = scpe.MachineName;
                    newRow["Service"] = scpe.ServiceName;

                    // Determine the Access String
                    String sAccess;
                    if ((scpe.PermissionAccess & ServiceControllerPermissionAccess.Control) == ServiceControllerPermissionAccess.Control)
                    {
                        sAccess = CResourceStore.GetString("ServiceControllerPermission:Control");
                    }
                    else if ((scpe.PermissionAccess & ServiceControllerPermissionAccess.Browse) == ServiceControllerPermissionAccess.Browse)
                    {
                        sAccess = CResourceStore.GetString("ServiceControllerPermission:Browse");
                    }
                    else
                    {
                        sAccess = CResourceStore.GetString("None");
                    }

                    newRow["Access"] = new DataGridComboBoxEntry(sAccess);
                    m_dt.Rows.Add(newRow);
                }
            }

            // We want at least 1 row so it looks pretty
            while (m_dt.Rows.Count < 1)
            {
                AddEmptyRow(m_dt);
            }
        }// PutValuesinPage
Beispiel #8
0
        public void Intersect_Unrestricted()
        {
            // Intersection with unrestricted == Copy
            // a. source (this) is unrestricted
            ServiceControllerPermission scp1 = new ServiceControllerPermission(PermissionState.Unrestricted);
            ServiceControllerPermission scp2 = new ServiceControllerPermission(PermissionState.None);

            // 1. Unrestricted N None
            ServiceControllerPermission result = (ServiceControllerPermission)scp1.Intersect(scp2);

            Assert.IsFalse(result.IsUnrestricted(), "(Unrestricted N None).IsUnrestricted");
            Assert.AreEqual(0, result.PermissionEntries.Count, "(Unrestricted N None).Count");

            // 2. None N Unrestricted
            result = (ServiceControllerPermission)scp2.Intersect(scp1);
            Assert.IsFalse(result.IsUnrestricted(), "(None N Unrestricted).IsUnrestricted");
            Assert.AreEqual(0, result.PermissionEntries.Count, "(None N Unrestricted).Count");

            // 3. Unrestricted N Unrestricted
            result = (ServiceControllerPermission)scp1.Intersect(scp1);
            Assert.IsTrue(result.IsUnrestricted(), "(Unrestricted N Unrestricted).IsUnrestricted");
            Assert.AreEqual(0, result.PermissionEntries.Count, "(Unrestricted N Unrestricted).Count");

            // 4. Unrestricted N Entry
            scp2.PermissionEntries.Add(new ServiceControllerPermissionEntry(ServiceControllerPermissionAccess.None, "localhost", "http"));
            result = (ServiceControllerPermission)scp1.Intersect(scp2);
            Assert.IsFalse(result.IsUnrestricted(), "(Unrestricted N Entry).IsUnrestricted");
            Assert.AreEqual(1, result.PermissionEntries.Count, "(Unrestricted N Entry).Count");

            // 5. Entry N Unrestricted
            result = (ServiceControllerPermission)scp2.Intersect(scp1);
            Assert.IsFalse(result.IsUnrestricted(), "(Entry N Unrestricted).IsUnrestricted");
            Assert.AreEqual(1, result.PermissionEntries.Count, "(Entry N Unrestricted).Count");

            // 6. Unrestricted N Unrestricted
            scp1.PermissionEntries.Add(new ServiceControllerPermissionEntry(ServiceControllerPermissionAccess.None, "localhost", "http"));
            result = (ServiceControllerPermission)scp1.Intersect(scp1);
            Assert.IsTrue(result.IsUnrestricted(), "(Unrestricted N Unrestricted).IsUnrestricted");
            Assert.AreEqual(1, result.PermissionEntries.Count, "(Unrestricted N Unrestricted).Count");
        }