来自相同位置的对Web API的限制请求

问题描述 投票:0回答:1

[我们有一个网络API,我们允许匿名[AllowAnonymous]用户使用我们自己的移动应用(Android和iOS)进行注册。最近,据报道有多个用户使用相同的电子邮件地址注册,这是我们不允许的。我们进行了多次检查,以防止发生这种情况。当我们检查我们的IIS日志时。我们有这样的东西:

2020-02-15 18:40:42 XXX.XXX.X.XX POST /api/Account/Register - 8082 - Y.YY.YYY.YYY OurIOSAppName/3+CFNetwork/1121.2.2+Darwin/19.3.0 - 400 0 64 69968
2020-02-15 18:40:42 XXX.XXX.X.XX POST /api/Account/Register - 8082 - Y.YY.YYY.YYY OurIOSAppName/3+CFNetwork/1121.2.2+Darwin/19.3.0 - 200 0 0 13218
2020-02-15 18:40:42 XXX.XXX.X.XX POST /api/Account/Register - 8082 - Y.YY.YYY.YYY OurIOSAppName/3+CFNetwork/1121.2.2+Darwin/19.3.0 - 200 0 0 17390

似乎我们的网络api正在使用AlamoFire接收来自iOS移动应用的多个请求,而Android的RetroFit也是如此。有没有预防的方法?

.net asp.net-core-webapi iis-10
1个回答
0
投票

问题不是同时存在多个请求,而是您用于创建用户的代码具有竞争条件。下面的两张票只是一个开始,有很多方法可以解决此问题。

Preventing race condition of if-exists-update-else-insert in Entity Framework

https://softwareengineering.stackexchange.com/questions/263726/how-to-prevent-race-conditions-in-a-web-application

© www.soinside.com 2019 - 2024. All rights reserved.