加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 绑定动作参数以在ASP.NET MVC中请求cookie – 发

发布时间:2020-12-16 06:41:25 所属栏目:asp.Net 来源:网络整理
导读:在ASP.NET MVC的几个早期预览中,控制器方法的参数将通过检查查询字符串,然后是表单,然后是cookie和服务器变量集合来解决,如 this post from Stephen Walther中所述. 例如,此代码用于工作: public class MyController : Controller { // This should bind to
在ASP.NET MVC的几个早期预览中,控制器方法的参数将通过检查查询字符串,然后是表单,然后是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中.

发布说明中的任何地方都包含此更改吗?如果这是对框架的更改,那么现在是否有以这种方式绑定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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读