* OleDbParameterCollectionTest.cs: Fix compile error in 1.1 profile.
[mono.git] / mcs / class / System.ServiceProcess / System.ServiceProcess / ServiceControllerPermissionEntry.cs
index 74a51697ee0407fb8dbc8e01ab681fc525c1edbd..7c8763fd489beb8ecdf2326c44d5fb6d3704f3da 100644 (file)
@@ -1,12 +1,12 @@
 //
 // System.ServiceProcess.ServiceControllerPermissionEntry.cs
 //
-// Author:
+// Authors:
 //      Duncan Mak (duncan@ximian.com)
+//     Sebastien Pouliot  <sebastien@ximian.com>
 //
 // (C) 2003, Ximian Inc.
-//
-
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-using System;
 using System.ComponentModel;
+using System.Security.Permissions;
 
 namespace System.ServiceProcess {
 
-        [Serializable]
-        public class ServiceControllerPermissionEntry
-        {
-                string machine_name;
-                string service_name;
-                ServiceControllerPermissionAccess permission_access;
-                
-                public ServiceControllerPermissionEntry ()
-                {
-                        machine_name = ".";
-                        service_name = "*";
-                        permission_access = ServiceControllerPermissionAccess.Browse;
-                }
-
-                public ServiceControllerPermissionEntry (
-                        ServiceControllerPermissionAccess permissionAccess,
-                        string machineName,
-                        string serviceName)
-                {
-                        permission_access = permissionAccess;
-                        machine_name = machineName;
-                        service_name = serviceName;
-                }
-
-                public string MachineName {
+       [Serializable]
+       public class ServiceControllerPermissionEntry {
 
-                        get { return machine_name; }
+               string machine_name;
+               string service_name;
+               ServiceControllerPermissionAccess permission_access;
+               
+               public ServiceControllerPermissionEntry ()
+               {
+                       machine_name = ResourcePermissionBase.Local;
+                       service_name = ResourcePermissionBase.Any;
+                       permission_access = ServiceControllerPermissionAccess.Browse;
+               }
 
-                }
+               public ServiceControllerPermissionEntry (ServiceControllerPermissionAccess permissionAccess,
+                       string machineName, string serviceName)
+               {
+                       ServiceControllerPermission.ValidateMachineName (machineName);
+                       ServiceControllerPermission.ValidateServiceName (serviceName);
 
-                public string ServiceName {
+                       permission_access = permissionAccess;
+                       machine_name = machineName;
+                       service_name = serviceName;
+               }
 
-                        get { return service_name; }
+               public string MachineName {
+                       get { return machine_name; }
+               }
 
-                }
+               public string ServiceName {
+                       get { return service_name; }
+               }
 
-                public ServiceControllerPermissionAccess PermissionAccess {
+               public ServiceControllerPermissionAccess PermissionAccess {
+                       get { return permission_access; }
+               }
 
-                        get { return permission_access; }
+               // look at MSDN library ResourcePermissionBaseEntry sample for the "design"
 
-                }
-        }
+               internal ResourcePermissionBaseEntry GetBaseEntry ()
+               {
+                       return new ResourcePermissionBaseEntry ((int) permission_access, new string[] { machine_name, service_name });
+               } 
+       }
 }