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(密码)
希望对您有所帮助
我的 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(密码)
希望对您有所帮助