31

这可能是一个基本问题,但是当有 HTTP 或 HTTPS 基本身份验证时,用户名中是否可以有冒号(“:”)?如果没有,有没有办法可以逃脱冒号?

4

2 回答 2

36

RFC https://www.rfc-editor.org/rfc/rfc2617#section-2 明确指出用户名不得包含冒号:

为了接收授权,客户端在凭证中的 base64 [7] 编码字符串中发送用户 ID 和密码,由单个冒号 (":") 字符分隔。`

基本凭证 = base64 用户通行证

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

基于此,无法在用户名中使用冒号。

于 2015-10-28T12:25:12.557 回答
17

查看 RFC - https://www.rfc-editor.org/rfc/rfc2617#section-2和网络,似乎没有用户名中的冒号转义技术。您唯一可以拥有的额外位置是在密码字段中。

如果这是一个选项,您也许可以在身份验证级别用 @ 替换 : 并要求用户这样做。

于 2012-07-23T12:53:40.200 回答