예제 #1
0
        public static void Delete(string prefix)
        {
            HttpApi.CallHttpApi(() =>
            {
                var configKey = new URLACL_SET();
                configKey.KeyDesc.pUrlPrefix = prefix;

                HttpApi.ThrowWin32ExceptionIfError(HttpApi.HttpDeleteServiceConfiguration(IntPtr.Zero,
                                                                                          HttpApi.HTTP_SERVICE_CONFIG_ID.HttpServiceConfigUrlAclInfo,
                                                                                          configKey, Marshal.SizeOf(configKey), IntPtr.Zero));
            });
        }
예제 #2
0
        public static UrlAcl Create(string prefix, string newSddl)
        {
            HttpApi.CallHttpApi(() =>
            {
                var config = new URLACL_SET();
                config.KeyDesc.pUrlPrefix = prefix;
                config.ParamDesc.pStringSecurityDescriptor = newSddl;

                HttpApi.ThrowWin32ExceptionIfError(HttpApi.HttpSetServiceConfiguration(IntPtr.Zero,
                                                                                       HttpApi.HTTP_SERVICE_CONFIG_ID.HttpServiceConfigUrlAclInfo,
                                                                                       config, Marshal.SizeOf(config), IntPtr.Zero));
            });

            return(new UrlAcl(prefix, newSddl));
        }