不用难道吧!你都贴出源码了,源码的逻辑就是检查 UserAgent 是否匹配模式此模式。
? useragent不是由浏览器指定的吗?用户怎么能修改?它那样检测有啥意义?
@木龙哥: 请问这个检测的用途是什么?
@Launcher:
@木龙哥: 请问,这段代码跟用户能否修改有什么关系吗?
@Launcher: 难道用户使用userAgent包含Eureka/(?<version>[\d\.]+) 的浏览器,都会自动把EnableInstrumentation设成true,使用其他浏览器就会设置成false?
@木龙哥: 跟浏览器没什么关系,它只是检测 Request Headers 中 User-Agent 是否匹配模式。
@Launcher: 那应该这样写呀Request.Headers["User-Agent"]
@木龙哥: 请你说清楚哪里应该这样写?
@Launcher:
如果按你说的它只是检测 Request Headers 中 User-Agent 是否匹配模式。
那应该这样写:string userAgent=context.Request.Headers["UserAgent"];
@木龙哥: 你的意思是:
string userAgent = context.Request.UserAgent;
同:
string userAgent = context.Request.Headers["UserAgent"];
不是同一个东西?
@木龙哥: Useragent 可以修改的,你可以用浏览器(如:Chrome)模拟各种设备及其上的各种浏览器。
@Launcher: userAgent是浏览器的标识,这个功能是用来给开发者调试用的?只要开发者把userAgent设置成包含Eureka/(?<version>[\d\.]+) ,它就不会缓存了,是这样吗?
@木龙哥: 通过你给的代码来看,如何匹配 Eureka/(...) 模式,则会设置根据 User-Agent 的值来设置一个缓存策略。是不是为开发者调试用的,我不知道。