| Предыдущий | Следующий |
| DNS_STATUS_SINGLE_PART_NAME | DNS_ERROR_NUMERIC_NAME |
DNS_ERROR_INVALID_NAME_CHAR
Жёсткий сбой проверки
DNS_ERROR_INVALID_NAME_CHAR возвращается проверкой имён Windows для символов, недопустимых в выбранном DNS_NAME_FORMAT. Microsoft перечисляет пробелы и определённый набор знаков пунктуации; звёздочка также отклоняется, если она не используется как первая метка многометочного имени, проверяемого как шаблон. Это строже, чем DNS_ERROR_NON_RFC_NAME, который может быть предупреждением о переносимости для подчёркиваний или расширенных символов.
Первая сообщённая ошибка может быть не единственной. DnsValidateName проверяет условия последовательно и возвращается при обнаружении первой проблемы, поэтому исправление одного символа может выявить последующую ошибку длины, числовой метки или формата.
Что проверить
- Записывайте кодовые точки Unicode, а не только отображаемый текст; невидимые пробелы и похожие знаки пунктуации являются частыми причинами.
- Подтвердите предполагаемый формат: метка узла, домен, запись SRV или шаблон.
- Не удаляйте символы молча, поскольку это может изменить запрошенное имя владельца или создать конфликт.
- Нормализуйте ввод на границе пользовательского интерфейса, затем проверяйте точную строку, которая будет запрошена или зарегистрирована.
Ссылки
- Microsoft: порядок проверки DnsValidateNameW
- Microsoft: DNS_NAME_FORMAT
- RFC 1035: предпочтительный синтаксис имён
Нужно найти другой код? Найти другой код состояния или ошибки.
