ASP.NET-查询字符串值的请求(“key”)是否比Request.QueryString(“key”)慢?
使用ASP.NET-查询字符串值的请求(“key”)是否比Request.QueryString(“key”)慢?,asp.net,Asp.net,使用Request.Querystring(“key”)超过Request(“key”)访问Querystring值是否有正当的性能原因 Request.Item(“key”)(我认为这相当于Request(“key”))从以下数据源提取: 质询 形式 饼干 服务器变量 这对我来说意味着Request.QueryString(“key”)将有更好的性能,但我看到有足够多的人在使用Request(“key”),这让我开始怀疑。显然,Request(“key”)会混淆数据源,但如果我的问题是性能
Request.Querystring(“key”)
超过Request(“key”)
访问Querystring值是否有正当的性能原因
Request.Item(“key”)
(我认为这相当于Request(“key”)
)从以下数据源提取:
- 质询
- 形式
- 饼干
- 服务器变量
Request(“key”)
会混淆数据源,但如果我的问题是性能,那么上下文会混淆
- 相关的:
如果只检查一个位置的值,而不允许接受用户的任何内容,可能会更安全(稍微安全一些)。我能提供的最佳建议是对其进行基准测试 但从常识的角度来看,我希望Request.QueryString(“key”)更快
考虑现实世界中的另一种选择。如果你想找到一个单词,有人递给你两本字典,说“它可能在这本字典里,也可能在这本字典里”,这会比他们给他们一本字典并说“是的,肯定在这本字典里。看看这里”快吗?如果性能有差异,肯定会非常非常,小的但是,使用Request可能存在安全漏洞,因为您可能从意外的来源获取数据,这是我避免使用Request的唯一原因。我猜如果他们允许使用Request,那么性能的影响将是最小的,而且可能不必担心。您可能会看到的最大问题是,同一个密钥是否存在于多个区域中。我不知道它会立即签入哪个订单,MSDN似乎也没有说。如果有性能差异,它肯定会非常非常小。但是,使用
Request
可能存在安全漏洞,因为您可能从意外来源获取数据,这是我避免使用它的唯一原因。不确定性能,但从安全角度来看,指定密钥的来源(QueryString、Form等)是有意义的,否则,用户可能会以您不期望的方式传递变量,例如,在查询中指定一个值,您认为该值只会出现在cookie中。@Widor:grated,您应该假设来自用户的任何数据都不受信任,并且应该进行验证,无论其来源是什么。每个用户指定的源都会被欺骗。如果没有回答特定问题的答案,我会将其标记为已接受,因为这表明确实有一个有效的安全原因(意外源)不使用此功能