【发布时间】:2018-10-10 22:55:17
【问题描述】:
我在我的服务器端有以下asp.net web api,它应该将电话号码或电子邮件地址作为用户登录名。它与电子邮件地址和电话号码完美配合,没有'+'前缀。当电话号码有+这个api永远不会被命中。
类级路由前缀:[RoutePrefix("api/Account")]
[HttpPost]
[HttpOptions]
[Route("{UserName}/ResetCode")]
public IHttpActionResult ResetCode([FromUri]string userName, [FromUri]string lan = null)
{
service.ResetCode(userName, language);
return Ok();
}
提琴手请求: + 在电话号码中:
http://localhost:56771/api/Account/%2B18888888888/ResetCode?lan=en-US
这不会影响我的 api。
不带 + 的 Fiddler 请求:
http://localhost:56771/api/Account/18888888888/ResetCode?lan=en-US
此 URL 命中服务。
带有电子邮件的提琴手请求:
http://localhost:56771/api/Account/abc%40GMAIL.COM/ResetCode?lan=en-US
此 URL 命中服务。
第一个 url(上面列出的)无法访问服务的原因可能是什么。
感谢您的帮助。
【问题讨论】:
标签: javascript c# .net asp.net-mvc asp.net-web-api