コード例 #1
0
        /// <inheritdoc />
        public void DeleteConfigEntry(String entryName, String node = null)
        {
            ICertAdmin2 certAdmin = new CCertAdminClass();

            try {
                if (useActive)
                {
                    certAdmin.SetConfigEntry($"{ComputerName}\\{ActiveConfig}", node ?? String.Empty, entryName, null);
                }
                else
                {
                    certAdmin.SetConfigEntry(ComputerName, String.Empty, entryName, null);
                }
            } catch (Exception ex) {
                if (!(ex is FileNotFoundException))
                {
                    throw;
                }
            } finally {
                CryptographyUtils.ReleaseCom(certAdmin);
            }
        }
コード例 #2
0
        /// <inheritdoc />
        public void SetConfigEntry(Object data, String entryName, String node = null)
        {
            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }

            ICertAdmin2 certAdmin = new CCertAdminClass();

            try {
                switch (data)
                {
                case String _:
                case Int32 _:
                    if (useActive)
                    {
                        certAdmin.SetConfigEntry($"{ComputerName}\\{ActiveConfig}", node ?? String.Empty, entryName, data);
                    }
                    else
                    {
                        certAdmin.SetConfigEntry(ComputerName, String.Empty, entryName, data);
                    }
                    break;

                case Boolean b:
                    if (useActive)
                    {
                        certAdmin.SetConfigEntry($"{ComputerName}\\{ActiveConfig}", node ?? String.Empty, entryName, b ? 1 : 0);
                    }
                    else
                    {
                        certAdmin.SetConfigEntry(ComputerName, String.Empty, entryName, b ? 1 : 0);
                    }
                    break;

                case IEnumerable <String> array:
                    if (useActive)
                    {
                        certAdmin.SetConfigEntry($"{ComputerName}\\{ActiveConfig}", node ?? String.Empty, entryName, array.ToArray());
                    }
                    else
                    {
                        certAdmin.SetConfigEntry(ComputerName, String.Empty, entryName, array.ToArray());
                    }
                    break;

                case IEnumerable <Byte> array:
                    if (useActive)
                    {
                        certAdmin.SetConfigEntry($"{ComputerName}\\{ActiveConfig}", node ?? String.Empty, entryName, array.ToArray());
                    }
                    else
                    {
                        certAdmin.SetConfigEntry(ComputerName, String.Empty, entryName, array.ToArray());
                    }
                    break;

                default:
                    throw new ArgumentException();
                }
            } finally {
                CryptographyUtils.ReleaseCom(certAdmin);
            }
        }