Это может быть основной вопрос, но возможно ли иметь имя пользователя ( ":" ) в имени пользователя при базовой аутентификации HTTP или HTTPS? Если нет, есть ли способ избежать двоеточия?
Базовая аутентификация HTTP/HTTPS: двоеточие в имени пользователя
Ответ 1
Глядя на RFC - http://tools.ietf.org/html/rfc2617#section-2 и по всему Интернету, похоже, не существует метода escaping для двоеточия в имени пользователя. Единственное место, которое вы можете получить, это в поле пароля.
Если это вариант, возможно, вы можете заменить: с @на уровне auth и попросить пользователей сделать это.
Ответ 2
RFC http://tools.ietf.org/html/rfc2617#section-2 четко указывает, что имя пользователя не должно содержать двоеточие:
Чтобы получить авторизацию, клиент отправляет идентификатор пользователя и пароль, разделенные одним символом двоеточия ( ":" ), в кодировке base64 [7] в учетных данных.
basic-credentials = base64-user-pass
base64-user-pass = <base64 [4] encoding of user-pass, except not limited to 76 char/line>
user-pass = userid ":" password
userid = * <TEXT excluding ":">
password = *TEXT
Исходя из этого, нет способа использовать двоеточие внутри имени пользователя.