Exemple #1
0
        public void IsSubset_Null()
        {
            ServiceControllerPermission scp = new ServiceControllerPermission(PermissionState.None);

#if NET_2_0
            Assert.IsTrue(scp.IsSubsetOf(null), "null");
#else
            Assert.IsFalse(scp.IsSubsetOf(null), "null");
#endif
        }
        public void FromXml_NoVersion()
        {
            ServiceControllerPermission scp = new ServiceControllerPermission(PermissionState.None);
            SecurityElement             se  = scp.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("class", se.Attribute("class"));
            scp.FromXml(w);
        }
Exemple #3
0
        public static bool AssertControlAccessRights([NotNull] this ServiceController thisValue, [NotNull] SecurityIdentifier sid)
        {
            ServiceControllerPermission scp = new ServiceControllerPermission(ServiceControllerPermissionAccess.Control, thisValue.MachineName, thisValue.ServiceName);

            scp.Demand();

            //ServiceAccessRights accessRights = GetEffectiveAccessRights(thisValue, sid);
            //return accessRights.HasFlag(ServiceAccessRights.QueryStatus | ServiceAccessRights.Start | ServiceAccessRights.Stop | ServiceAccessRights.PauseContinue);
            return(true);
        }
Exemple #4
0
        public void Union_Null()
        {
            ServiceControllerPermission scp = new ServiceControllerPermission(PermissionState.None);

            scp.PermissionEntries.Add(new ServiceControllerPermissionEntry(ServiceControllerPermissionAccess.None, "localhost", "http"));
            // Union with null is a simple copy
            ServiceControllerPermission union = (ServiceControllerPermission)scp.Union(null);

            Assert.AreEqual(1, union.PermissionEntries.Count, "Count");
        }
Exemple #5
0
        public void FromXml_WrongTag()
        {
            ServiceControllerPermission scp = new ServiceControllerPermission(PermissionState.None);
            SecurityElement             se  = scp.ToXml();

            se.Tag = "IMono";
            scp.FromXml(se);
            // note: normally IPermission classes (in corlib) DO care about the
            // IPermission tag
        }
Exemple #6
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());
     }
 }
Exemple #7
0
        public void FromXml_NoClass()
        {
            ServiceControllerPermission scp = new ServiceControllerPermission(PermissionState.None);
            SecurityElement             se  = scp.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("version", se.Attribute("version"));
            scp.FromXml(w);
            // doesn't even care of the class attribute presence
        }
Exemple #8
0
 public void Copy()
 {
     foreach (ServiceControllerPermissionAccess scpa in AllAccess)
     {
         ServiceControllerPermission      scp  = new ServiceControllerPermission(PermissionState.None);
         ServiceControllerPermissionEntry scpe = new ServiceControllerPermissionEntry(scpa, "localhost", scpa.ToString());
         scp.PermissionEntries.Add(scpe);
         ServiceControllerPermission copy = (ServiceControllerPermission)scp.Copy();
         Assert.AreEqual(1, copy.PermissionEntries.Count, "Count==1");
         Assert.AreEqual(scpa, scp.PermissionEntries [0].PermissionAccess, scpa.ToString());
     }
 }
Exemple #9
0
 private void ControlForm1_Shown(object sender, EventArgs e)
 {
     if (scp == null)
     {
         scp = new ServiceControllerPermission(ServiceControllerPermissionAccess.Control, Environment.MachineName, "Service1");//this will grant permission to access the Service
     }
     //slc.ClientConnect();
     //service_log_poll_worker.RunWorkerAsync();
     scp.Assert();
     serviceController1.Refresh();
     label1.Text = serviceController1.DisplayName + " 서비스 ";
 }
Exemple #10
0
        public void FromXml_WrongClass()
        {
            ServiceControllerPermission scp = new ServiceControllerPermission(PermissionState.None);
            SecurityElement             se  = scp.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("class", "Wrong" + se.Attribute("class"));
            w.AddAttribute("version", se.Attribute("version"));
            scp.FromXml(w);
            // doesn't care of the class name at that stage
            // anyway the class has already be created so...
        }
        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");
        }
        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");
        }
 public static void CustomCommend(string serviceName, int commend)
 {
     try
     {
         ServiceController           sc  = new ServiceController(serviceName);
         ServiceControllerPermission scp = new ServiceControllerPermission(ServiceControllerPermissionAccess.Control, Environment.MachineName, serviceName);//this will grant permission to access the Service
         scp.Assert();
         sc.Refresh();
         sc.ExecuteCommand(commend);
     }
     catch
     {
     }
 }
Exemple #14
0
        public void IsSubset_None()
        {
            // IsSubset with none
            // a. source (this) is none -> target is never a subset
            // b. destination (target) is none -> target is always a subset
            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()));
                Assert.IsTrue(scp1.IsSubsetOf(scp2), "target " + scpa.ToString());
                Assert.IsFalse(scp2.IsSubsetOf(scp1), "source " + scpa.ToString());
            }
        }
        }// 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
Exemple #16
0
        public void Intersect_None()
        {
            ServiceControllerPermission scp1 = new ServiceControllerPermission(PermissionState.None);
            ServiceControllerPermission scp2 = new ServiceControllerPermission(PermissionState.None);
            // 1. None N None
            ServiceControllerPermission result = (ServiceControllerPermission)scp1.Intersect(scp2);

            Assert.IsNull(result, "Empty N Empty");
            // 2. None N Entry
            scp2.PermissionEntries.Add(new ServiceControllerPermissionEntry(ServiceControllerPermissionAccess.None, "localhost", "http"));
            result = (ServiceControllerPermission)scp1.Intersect(scp2);
            Assert.IsNull(result, "Empty N Entry");
            // 3. Entry N None
            result = (ServiceControllerPermission)scp2.Intersect(scp1);
            Assert.IsNull(result, "Entry N Empty");
        }
Exemple #17
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());
            }
        }
Exemple #18
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 ()");
        }
Exemple #19
0
        public void PermissionEntries()
        {
            ServiceControllerPermissionAccess          scpa  = ServiceControllerPermissionAccess.None;
            ServiceControllerPermission                scp   = new ServiceControllerPermission(scpa, "localhost", "http");
            ServiceControllerPermissionEntryCollection scpec = scp.PermissionEntries;

            Assert.AreEqual(1, scpec.Count, "Count==1");

            ServiceControllerPermissionEntry scpe = new ServiceControllerPermissionEntry(ServiceControllerPermissionAccess.Browse, "*", "ftp");

            scp.PermissionEntries.Add(scpe);
            Assert.AreEqual(2, scpec.Count, "Count==2");

            // remove (same instance)
            scp.PermissionEntries.Remove(scpe);
            Assert.AreEqual(1, scpec.Count, "Count==1 (b)");

            // remove different instance (doesn't work)
            scpe = new ServiceControllerPermissionEntry(ServiceControllerPermissionAccess.None, "localhost", "http");
            Assert.AreEqual(1, scpec.Count, "Count==1");
        }
Exemple #20
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");
        }
Exemple #21
0
        // Service start, if the service isn't active, we run it. Otherwise, nothing is done.
        /// <summary>
        /// Starting Service
        /// </summary>
        private static void StartService()
        {
            ImpersonateUser iu = new ImpersonateUser();

            iu.Impersonate(@".", "Axel", Settings.Default.Password);

            using (var controller = new ServiceController("RedXService")){
                ServiceControllerPermission scp = new ServiceControllerPermission(ServiceControllerPermissionAccess.Control, ".", "RedXService");
                scp.Assert();

                controller.Refresh();
                if (controller.Status != ServiceControllerStatus.Running)
                {
                    controller.Start();
                }
                controller.WaitForStatus(ServiceControllerStatus.StartPending);
                controller.WaitForStatus(ServiceControllerStatus.Running);

                controller.Refresh();
            }

            iu.Undo();
        }
Exemple #22
0
// "special" behavior inherited from ResourceBasePermission
//		[ExpectedException (typeof (ArgumentException))]
        public void IsSubsetOf_BadPermission()
        {
            ServiceControllerPermission scp1 = new ServiceControllerPermission(PermissionState.Unrestricted);

            Assert.IsFalse(scp1.IsSubsetOf(new SecurityPermission(SecurityPermissionFlag.Assertion)));
        }
 internal CServiceControllerPermDialog(ServiceControllerPermission perm)
 {
     this.Text      = CResourceStore.GetString("PerformanceCounterPerm:PermName");
     m_PermControls = new CServiceControllerPermControls(perm, this);
     Init();
 } // CServiceControllerPermDialog(SocketPermission)
Exemple #24
0
        public void Union_BadPermission()
        {
            ServiceControllerPermission scp1 = new ServiceControllerPermission(PermissionState.Unrestricted);

            scp1.Union(new SecurityPermission(SecurityPermissionFlag.Assertion));
        }
        public void IsSubset_Null()
        {
            ServiceControllerPermission scp = new ServiceControllerPermission(PermissionState.None);

            Assert.IsTrue(scp.IsSubsetOf(null), "null");
        }
Exemple #26
0
        public void FromXml_Null()
        {
            ServiceControllerPermission scp = new ServiceControllerPermission(PermissionState.None);

            scp.FromXml(null);
        }