Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net web api 在asp.net核心API中检测请求是否来自移动设备_Asp.net Web Api_Asp.net Core - Fatal编程技术网

Asp.net web api 在asp.net核心API中检测请求是否来自移动设备

Asp.net web api 在asp.net核心API中检测请求是否来自移动设备,asp.net-web-api,asp.net-core,Asp.net Web Api,Asp.net Core,我正在努力防止垃圾邮件,我想知道: 如何检测对API的请求是否来自移动设备 谢谢检查请求是否来自移动设备的唯一方法是检查随每个请求一起发送的用户代理。用户代理可以在HttpContext.Request.Headers['user-agent']中找到 然后将用户代理值与移动浏览器列表进行比较,例如:一个选项是编写自己的用户代理解析器,以确定它是否为移动浏览器。这是一项巨大的工作,随着新设备的发布,您将不得不不断扩展。它有自己的问题,就像你在另一条评论中说的那样-你如何得到一个新的用户代理列表,

我正在努力防止垃圾邮件,我想知道:

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


谢谢

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


然后将用户代理值与移动浏览器列表进行比较,例如:

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

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

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


几个月前,我在我的工作中做了一个比较——在我看来是最好的——它是独立于平台的(不管你用ASP/C#/Ruby编写系统的语言是什么),并且是免费的,并且有一个活跃的开发团队在工作。另外,因为它是一个API,所以您永远不必更新代码库,它总是在最新检测到他们编写的代码时工作。我们今天仍然使用它。

查看请求头中的用户代理。非常感谢,有没有办法保证我拥有最新版本的代理?感谢由于版本不断变化,无法保证用户代理的最新列表。我经常使用的列表来自