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); }
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); }
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"); }
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 }
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 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 }
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()); } }
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 + " 서비스 "; }
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 { } }
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
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"); }
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()); } }
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 ()"); }
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"); }
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"); }
// 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(); }
// "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)
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"); }
public void FromXml_Null() { ServiceControllerPermission scp = new ServiceControllerPermission(PermissionState.None); scp.FromXml(null); }