为了账号安全,请及时绑定邮箱和手机立即绑定

湿API路由无效

湿API路由无效

C#
摇曳的蔷薇 2021-05-07 17:16:19
我在服务器端使用了asp.net Web API,该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。无+的提琴手请求:http://localhost:56771/api/Account/18888888888/ResetCode?lan=en-US此网址会触发该服务。提琴手的要求与电子邮件:http://localhost:56771/api/Account/abc%40GMAIL.COM/ResetCode?lan=en-US此网址会触发该服务。可能是第一个url(上面列出的)无法访问该服务的原因。谢谢你的帮助。
查看完整描述

1 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

可能是%2B在URL中接收到或将其理解为+,然后将其转换为空格。


您也可以尝试通过对%符号进行编码(一种称为双重编码)来防止这种情况。+然后成为%252B。让我知道是否有帮助。


更新,以使答案更完整(感谢JH):


您还需要确保中存在以下设置Web.Config。


<system.webserver>

    <security>

        <requestFiltering allowDoubleEscaping="true">

    </security>

</system.webserver>


查看完整回答
反对 回复 2021-05-21
  • 1 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信