gpt4 book ai didi

asp.net-mvc - 在 ASP.NET MVC 中绑定(bind)操作参数以请求 cookie - 发生了什么?

转载 作者:行者123 更新时间:2023-12-05 00:43:58 25 4
gpt4 key购买 nike

在 ASP.NET MVC 的几个早期预览中, Controller 方法的参数将通过检查查询字符串、表单、cookie 和服务器变量集合来解析,如 this post from Stephen Walther 中所述。 .

例如,这段代码曾经工作:

public class MyController : Controller {

// This should bind to Request.Cookies["userId"].Value
public ActionResult Welcome(int userId) {

WebUser wu = WebUser.Load(userId);
ViewData["greeting"] = "Welcome, " + wu.Name;
return(View());
}
}

但是现在针对发布候选运行,它会引发异常,因为它找不到 userId 的值,即使 userId 肯定出现在请求 cookie 中。

发行说明中是否包含此更改?如果这是对框架的更改,那么现在是否有推荐的替代方法来以这种方式绑定(bind) cookie 和服务器变量?

编辑:感谢迄今为止做出回应的人。我可能选择了一个不好的例子来证明这一点;我们的代码将 cookie 用于各种形式的“方便”但非必要的持久性(记住搜索结果的顺序,诸如此类),因此这绝不是纯粹的身份验证问题。依赖用户 cookie 的安全隐患有据可查;我对当前有关用于检索 cookie 值的灵活、易于测试的技术的建议更感兴趣。 (我相信你会明白,上面的例子可能有安全隐患,但是非常非常容易测试!)

最佳答案

我相信是安全隐患说服他们把这些东西拿出来:
Stephen Walther 帖子中的评论 ASP.NET MVC Tip 15 ,导致 Phil Haack 发布 User Input in Sheep's Clothing ,尤其是他的评论here :

@Troy - Step one is to dissuade devs from that line of thinking in the first place. ;) Step one prime (in parallel) is for us to remove the possibility of this line of thinking in this case.

The larger point still stands, we can make this change (after discussing it, we probably will), but that doesn't mean that it's suddenly safe to trust action method parameters.


再加上如何从各种 Action 构建器类中调用这些方法的复杂性。
除了斯蒂芬的帖子之外,我似乎无法以一种或另一种方式找到任何关于 Controller 行为的明确文档,所以我猜它是“悄悄地放弃了”。

关于asp.net-mvc - 在 ASP.NET MVC 中绑定(bind)操作参数以请求 cookie - 发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/577481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com