首先,我使用HttpContext.Current.Request.UserAgent
获取userAgent字符串。
然后,我使用us-parser C#库来获取有关useragent字符串的信息。我注意到iOS的版本总是用下划线写成 - " {Major_Minor_Patch}" (例如" 4_3_3")。
我正在使用:clientInfo.OS.ToString()
提取版本,但它使用"来分隔主要,次要,补丁。"所有操作系统的符号(see source)。我真的需要通过" _"传递有关版本的信息。如果它是如何在使用者。
两个问题:
可以安全地假设只有iOS版本在userAgent中附带下划线吗?
可以安全地假设所有iOS版本都在userAgent中附带下划线吗?
答案 0 :(得分:2)
简答:
不,假设只有iOS在用户代理字符串中放置下划线是不安全的。通过大多数浏览器的插件,用户代理几乎可以设置为任何东西。
只有Apple可以肯定地回答这个问题。鉴于1的答案,我不会依赖它。
只有您可以决定检测下划线是否“足够好”以满足您的需要。我自己不会依赖它!