这可能是一个基本问题,但是当有 HTTP 或 HTTPS 基本身份验证时,用户名中是否可以有冒号(“:”)?如果没有,有没有办法可以逃脱冒号?
问问题
9834 次
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 回答