检测请求是否来自asp.net Core API中的移动设备

时间:2017-09-24 19:33:22

标签: asp.net-web-api asp.net-core

我正在尝试阻止垃圾邮件,我想知道:

如何检测对API的请求是否来自移动设备?

谢谢

2 个答案:

答案 0 :(得分:1)

检查请求是否来自移动设备的唯一方法是检查随每个请求发送的用户代理。用户代理可以在HttpContext.Request.Headers['User-Agent']中找到。

然后将用户代理值与例如:https://deviceatlas.com/blog/mobile-browser-user-agent-strings

中找到的移动浏览器列表进行比较

答案 1 :(得分:1)

一种选择是编写自己的用户代理解析器,以确定它是否是移动浏览器。这是一项巨大的工作,随着新设备的发布,您将不得不继续扩展。它有自己的问题,就像你在另一条评论中所说的那样 - 你如何得到一个包含新用户代理的列表......

另一种选择是找到一些用ASP编写的免费库,它将为您完成这项工作。我看不到用asp.net Core API编写的库。如果你使用它,请确保开发人员定期更新它,并且你也不断更新你的库副本。

最后一个选项是使用用户代理解析API。一个好的将为您提供有关浏览器,软件和硬件/软件类型的详细信息。

几个月前我对我的工作进行了比较 - https://developers.whatismybrowser.com/api/对我来说是最好的 - 它是独立于平台的(无论你在ASP / C#/ Ruby中用什么语言编写系统) ),是免费增值,并有一个积极的开发团队正在努力。也因为它是一个API,你永远不必更新你的代码库,它总是在最新检测他们所写的东西。我们今天仍然使用它。