Я открыл дело с поддержкой Microsoft Premier. Вот электронная почта между мной и поддержкой Microsoft. Они в основном говорят, что это известная проблема. Это не ошибка, и это не особенность.
Внутренний интерфейс будет анализировать имя пользователя и правильно удалять недопустимые символы. Внешний интерфейс не выполняет никакой проверки пользовательского интерфейса, поскольку может существовать какой-либо другой пользовательский интерфейс для входа в систему. Их требования к имени пользователя могут отличаться. Я думаю, что они имеют в виду сторонних поставщиков учетных данных.
05 октября 2012 утро
Я только что позвонил одному из их инженеров. Объясните ему всю проблему еще раз. Он уверен, что :something
на сегодняшний день у него нет особого внутреннего значения, но он не может гарантировать, что это может что-то значить в будущем.
Однако у него нет исходного кода, чтобы подтвердить это. Он собирается отправить электронное письмо кому-то еще с исходным кодом, чтобы подтвердить это.
03 октября 2012 г. ночь - мой ответ
Спасибо за информацию. Тем не менее, я попробовал некоторые другие нелегальные символы, например; и |
Пользовательский интерфейс входа в систему может успешно обнаружить это и сказать мне, что мое имя пользователя или пароли неверны.
Если внешний интерфейс действительно не выполняет никакой проверки ввода, а внутренний интерфейс действительно может удалить все недопустимые символы, почему пользовательский интерфейс входа не позволит мне войти в систему как Harvey@company.com|something или Harvey@company.com; что-то, кроме Harvey@company.com: что-то.
Это странное поведение происходит только на «:».
-Harvey
3 октября 2012 г. - ответ службы поддержки MS
Привет Харви,
Нет ошибки в проверке внешнего интерфейса, так как внешний интерфейс не выполняет никакой проверки. Проверка выполняется, когда вы вводите свои учетные данные и пытаетесь войти в систему, затем в фоновом режиме выполняется проверка и отображается соответствующая ошибка.
Причина, по которой не выполняется предварительная проверка, заключается в том, что используются сторонние пользовательские интерфейсы входа в систему, которые используются, и требования к работе и аутентификации пользователя могут быть другими. Некоторые пользовательские интерфейсы могут требовать имя пользователя в формате diff, поэтому выполнение проверки при вводе учетных данных пользователя нарушит эти пользовательские интерфейсы.
Что касается Backend, каждый пользовательский интерфейс вызывает API-интерфейсы аутентификации Backend, независимо от того, какой пользовательский интерфейс присутствует во внешнем интерфейсе. Таким образом, выполнение проверки в бэкэнде обеспечивает правильную аутентификацию
С уважением XXXX
03 октября 2012 г. - мой ответ
Я понимаю объяснение различной обработки в front-end и back-end, так как я также программист.
Таким образом, это звучит как небольшая ошибка в логике проверки входных данных интерфейса пользователя, хотя в фоновом режиме ошибки нет.
Обратите внимание, что я также пытался сделать то же самое с помощью runas.exe. Файл runas.exe показал мне сообщение об ошибке перед передачей искаженного имени пользователя на сервер. Итак, мне кажется, что runas.exe выполняет правильную проверку ввода.
Если вы все еще думаете, что в интерфейсе пользовательского интерфейса нет ошибки, не могли бы вы объяснить, как дать конечному пользователю возможность ввести искаженное имя пользователя, а затем отобразить его на экране?
Спасибо Харви
3 октября 2012, утро - MS Support ответ
Привет Харви,
Я прошу прощения за задержку. Я переправил ваш вопрос в мое МСП, и вот его ответ: без ошибок. пользовательский интерфейс отображает то, что вы ввели. Бэкэнд анализирует строку, чтобы определить домен и имя пользователя. Это делает это правильно, так как: это незаконный символ.
Пожалуйста, дайте мне знать, если это прояснит ваши вопросы или я смогу помочь вам в дальнейшем.
С уважением XXXXX