Asp.Net Web API oAuth 2.0 无法使用包含与号 (&) 的密码进行验证

Asp.Net Web API oAuth 2.0 cannot validate with password containing ampersand (&)

我的 AngularJs 应用程序有线问题。当用户尝试登录应用程序时,如果密码包含与号 (&),则无法验证用户。

我正在使用 OWIN、oAuth2.0 JWT 令牌来验证我的 Asp.Net Web API。

我在调试时发现,如果密码包含符号 (&),则会截断符号 (&) 中的所有字符。

例如,如果密码是 'x&x',则 OAuthValidateClientAuthenticationContext 上下文在密码值中仅获得 'x'。

我已附上问题的屏幕截图 click to see the issue.

如能就此问题提供任何帮助,我们将不胜感激。

我猜测该值被解释为查询字符串分隔符。

尝试使用 javascript 方法

encodeURI()

EncodeURIcomponent()

在你发布到服务器之前的密码值,所以和号变成了

&

服务器将为您解码。
如果您不这样做,您可能会发现斜杠和问号在密码中也不起作用

我在密码字段中输入特殊字符(例如:&、+)时遇到了与 anguar 项目相同的问题。使用 encodeURIComponent 编码密码就成功了:

"&password=" + encodeURIComponent(密码)

希望对您有所帮助