public ServiceControllerPermissionAttribute (SecurityAction action)
			: base (action)
		{
			machine_name = ResourcePermissionBase.Local;
			service_name = ResourcePermissionBase.Any;
			permission_access = ServiceControllerPermissionAccess.Browse;
		}
		public ServiceControllerPermission (ServiceControllerPermissionAccess permissionAccess, string machineName, string serviceName)
		{
			SetUp ();
			ServiceControllerPermissionEntry scpe = new ServiceControllerPermissionEntry (permissionAccess, machineName, serviceName);
			innerCollection = new ServiceControllerPermissionEntryCollection (this);
			innerCollection.Add (scpe);
		}
예제 #3
0
 /// <include file='doc\ServiceControllerPermissionAttribute.uex' path='docs/doc[@for="ServiceControllerPermissionAttribute.ServiceControllerPermissionAttribute"]/*' />
 public ServiceControllerPermissionAttribute(SecurityAction action)
     : base(action)
 {
     this.machineName      = ".";
     this.serviceName      = "*";
     this.permissionAccess = ServiceControllerPermissionAccess.Browse;
 }
 public ServiceControllerPermissionAttribute(SecurityAction action)
     : base(action)
 {
     machine_name      = ResourcePermissionBase.Local;
     service_name      = ResourcePermissionBase.Any;
     permission_access = ServiceControllerPermissionAccess.Browse;
 }
예제 #5
0
        public void ServiceControllerPermissionAccesss_Bad()
        {
            ServiceControllerPermissionAccess scpa = (ServiceControllerPermissionAccess)Int32.MinValue;
            ServiceControllerPermission       scp  = new ServiceControllerPermission(scpa, "localhost", "http");

            Assert.AreEqual(1, scp.PermissionEntries.Count, "Count");
            Assert.AreEqual((ServiceControllerPermissionAccess)Int32.MinValue, scp.PermissionEntries [0].PermissionAccess, "PermissionAccess");
        }
 public ServiceControllerPermission(ServiceControllerPermissionAccess permissionAccess, string machineName, string serviceName)
 {
     Contract.Requires(System.ComponentModel.SyntaxCheck.CheckMachineName(machineName));
     Contract.Requires(!String.IsNullOrEmpty(serviceName));
     Contract.Requires(serviceName.Length <= ServiceBase.MaxNameLength);
     Contract.Requires(!serviceName.Contains("/"));
     Contract.Requires(!serviceName.Contains("\\"));
 }
예제 #7
0
        public ServiceControllerPermission(ServiceControllerPermissionAccess permissionAccess, string machineName, string serviceName)
        {
            SetUp();
            ServiceControllerPermissionEntry scpe = new ServiceControllerPermissionEntry(permissionAccess, machineName, serviceName);

            innerCollection = new ServiceControllerPermissionEntryCollection(this);
            innerCollection.Add(scpe);
        }
 public ServiceControllerPermission(ServiceControllerPermissionAccess permissionAccess, string machineName, string serviceName)
 {
   Contract.Requires(System.ComponentModel.SyntaxCheck.CheckMachineName(machineName));
   Contract.Requires(!String.IsNullOrEmpty(serviceName));
   Contract.Requires(serviceName.Length <= ServiceBase.MaxNameLength);
   Contract.Requires(!serviceName.Contains("/"));
   Contract.Requires(!serviceName.Contains("\\"));
 }
        }// ValidateData

        internal override IPermission GetCurrentPermission()
        {
            // Change cells so we get data committed to the grid
            m_dg.CurrentCell = new DataGridCell(0, 1);
            m_dg.CurrentCell = new DataGridCell(0, 0);

            ServiceControllerPermission perm = null;

            if (m_radUnrestricted.Checked == true)
            {
                perm = new ServiceControllerPermission(PermissionState.Unrestricted);
            }
            else
            {
                perm = new ServiceControllerPermission(PermissionState.None);
                for (int i = 0; i < m_dt.Rows.Count; i++)
                {
                    // Make sure we have a socket permission to add
                    if (m_dg[i, 0] != DBNull.Value && ((String)m_dg[i, 0]).Length > 0)
                    {
                        String sName = (String)m_dg[i, 0];
                        if (m_dg[i, 1] == DBNull.Value || ((String)m_dg[i, 1]).Length == 0)
                        {
                            MessageBox(CResourceStore.GetString("ServiceControllerPerm:NeedService"),
                                       CResourceStore.GetString("ServiceControllerPerm:NeedServiceTitle"),
                                       MB.ICONEXCLAMATION);
                            return(null);
                        }


                        String sService = (String)m_dg[i, 1];

                        ServiceControllerPermissionAccess scpa = ServiceControllerPermissionAccess.None;

                        if (((String)m_dg[i, 2]).Equals(CResourceStore.GetString("ServiceControllerPermission:Control")))
                        {
                            scpa = ServiceControllerPermissionAccess.Control;
                        }

                        else if (((String)m_dg[i, 2]).Equals(CResourceStore.GetString("ServiceControllerPermission:Browse")))
                        {
                            scpa = ServiceControllerPermissionAccess.Browse;
                        }

                        perm.PermissionEntries.Add(new ServiceControllerPermissionEntry(scpa, sName, sService));
                    }
                    else if (m_dg[i, 1] != DBNull.Value && ((String)m_dg[i, 1]).Length > 0)
                    {
                        MessageBox(CResourceStore.GetString("ServiceControllerPerm:NeedMachineName"),
                                   CResourceStore.GetString("ServiceControllerPerm:NeedMachineNameTitle"),
                                   MB.ICONEXCLAMATION);
                        return(null);
                    }
                }
            }
            return(perm);
        }// GetCurrentPermission
		public ServiceControllerPermissionEntry (ServiceControllerPermissionAccess permissionAccess,
			string machineName, string serviceName)
		{
			ServiceControllerPermission.ValidateMachineName (machineName);
			ServiceControllerPermission.ValidateServiceName (serviceName);

			permission_access = permissionAccess;
			machine_name = machineName;
			service_name = serviceName;
		}
        public ServiceControllerPermissionEntry(ServiceControllerPermissionAccess permissionAccess,
                                                string machineName, string serviceName)
        {
            ServiceControllerPermission.ValidateMachineName(machineName);
            ServiceControllerPermission.ValidateServiceName(serviceName);

            permission_access = permissionAccess;
            machine_name      = machineName;
            service_name      = serviceName;
        }
 internal ServiceControllerPermissionEntryCollection(ServiceControllerPermission owner)
 {
     this.owner = owner;
     ResourcePermissionBaseEntry[] entries = owner.GetEntries();
     if (entries.Length > 0)
     {
         foreach (ResourcePermissionBaseEntry entry in entries)
         {
             ServiceControllerPermissionAccess scpa = (ServiceControllerPermissionAccess)entry.PermissionAccess;
             string machine = entry.PermissionAccessPath [0];
             string service = entry.PermissionAccessPath [1];
             ServiceControllerPermissionEntry scpe = new ServiceControllerPermissionEntry(scpa, machine, service);
             // we don't want to add them (again) to the base class
             InnerList.Add(scpe);
         }
     }
 }
예제 #13
0
 public ServiceControllerPermissionEntry(ServiceControllerPermissionAccess permissionAccess, string machineName, string serviceName)
 {
     if (serviceName == null)
     {
         throw new ArgumentNullException("serviceName");
     }
     if (!ServiceController.ValidServiceName(serviceName))
     {
         object[] args = new object[] { serviceName, 80.ToString(CultureInfo.CurrentCulture) };
         throw new ArgumentException(Res.GetString("ServiceName", args));
     }
     if (!SyntaxCheck.CheckMachineName(machineName))
     {
         throw new ArgumentException(Res.GetString("BadMachineName", new object[] { machineName }));
     }
     this.permissionAccess = permissionAccess;
     this.machineName      = machineName;
     this.serviceName      = serviceName;
 }
 public ServiceControllerPermissionEntry(ServiceControllerPermissionAccess permissionAccess, string machineName, string serviceName)
 {
     if (serviceName == null)
     {
         throw new ArgumentNullException("serviceName");
     }
     if (!ServiceController.ValidServiceName(serviceName))
     {
         object[] args = new object[] { serviceName, 80.ToString(CultureInfo.CurrentCulture) };
         throw new ArgumentException(Res.GetString("ServiceName", args));
     }
     if (!SyntaxCheck.CheckMachineName(machineName))
     {
         throw new ArgumentException(Res.GetString("BadMachineName", new object[] { machineName }));
     }
     this.permissionAccess = permissionAccess;
     this.machineName = machineName;
     this.serviceName = serviceName;
 }
예제 #15
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");
        }
예제 #16
0
        /// <include file='doc\ServiceControllerPermissionEntry.uex' path='docs/doc[@for="ServiceControllerPermissionEntry.ServiceControllerPermissionEntry1"]/*' />
        public ServiceControllerPermissionEntry(ServiceControllerPermissionAccess permissionAccess, string machineName, string serviceName)
        {
            if (serviceName == null)
            {
                throw new ArgumentNullException("serviceName");
            }

            if (!ServiceController.ValidServiceName(serviceName))
            {
                throw new ArgumentException(Res.GetString(Res.ServiceName, serviceName, ServiceBase.MaxNameLength.ToString()));
            }

            if (!SyntaxCheck.CheckMachineName(machineName))
            {
                throw new ArgumentException(Res.GetString(Res.BadMachineName, machineName));
            }

            this.permissionAccess = permissionAccess;
            this.machineName      = machineName;
            this.serviceName      = serviceName;
        }
 public ServiceControllerPermissionEntry()
 {
     machine_name      = ResourcePermissionBase.Local;
     service_name      = ResourcePermissionBase.Any;
     permission_access = ServiceControllerPermissionAccess.Browse;
 }
 public ServiceControllerPermissionEntry()
 {
     this.machineName = ".";
     this.serviceName = "*";
     this.permissionAccess = ServiceControllerPermissionAccess.Browse;
 }
 public ServiceControllerPermissionAttribute(SecurityAction action) : base(action)
 {
     this.machineName = ".";
     this.serviceName = "*";
     this.permissionAccess = ServiceControllerPermissionAccess.Browse;
 }
 public ServiceControllerPermissionEntry(ServiceControllerPermissionAccess permissionAccess, string machineName, string serviceName)
 {
 }
 public ServiceControllerPermission(ServiceControllerPermissionAccess permissionAccess, string machineName, string serviceName)
 {
     this.SetNames();
     this.AddPermissionAccess(new ServiceControllerPermissionEntry(permissionAccess, machineName, serviceName));
 }
예제 #22
0
 public ServiceControllerPermission(ServiceControllerPermissionAccess permissionAccess, string machineName, string serviceName)
 {
 }
		public ServiceControllerPermissionEntry ()
		{
			machine_name = ResourcePermissionBase.Local;
			service_name = ResourcePermissionBase.Any;
			permission_access = ServiceControllerPermissionAccess.Browse;
		}
예제 #24
0
 internal ServiceControllerPermissionEntry(ResourcePermissionBaseEntry baseEntry)
 {
     this.permissionAccess = (ServiceControllerPermissionAccess)baseEntry.PermissionAccess;
     this.machineName      = baseEntry.PermissionAccessPath[0];
     this.serviceName      = baseEntry.PermissionAccessPath[1];
 }
예제 #25
0
 public ServiceControllerPermissionEntry()
 {
     this.machineName      = ".";
     this.serviceName      = "*";
     this.permissionAccess = ServiceControllerPermissionAccess.Browse;
 }
 internal ServiceControllerPermissionEntry(ResourcePermissionBaseEntry baseEntry)
 {
     this.permissionAccess = (ServiceControllerPermissionAccess) baseEntry.PermissionAccess;
     this.machineName = baseEntry.PermissionAccessPath[0];
     this.serviceName = baseEntry.PermissionAccessPath[1];
 }
 public ServiceControllerPermission(ServiceControllerPermissionAccess permissionAccess, string machineName, string serviceName)
 {
     this.SetNames();
     this.AddPermissionAccess(new ServiceControllerPermissionEntry(permissionAccess, machineName, serviceName));
 }