【问题标题】:Mvc How safe is viewbag?Mvc viewbag 的安全性如何?
【发布时间】:2014-05-05 11:39:20
【问题描述】:

我的网站是围绕标签构建的。我有一个页面,其中包含显示每个选项卡的多个部分视图。

我现在面临的问题是我想循环浏览用户上传的文件并将它们显示在我的部分视图中。这要求我在我的操作中将文件列表作为参数发送,如下所示:

//Uploadedfiles is a function that adds the files to a list.
var files = UploadedFiles();

return View(files);

因为我只使用一个视图来显示我所有的部分视图,所以我得到:

传入字典的模型项的类型为“Microsoft.WindowsAzure.Storage.Core.Util.CommonUtility+d__0`1[Delamapp.CloudStorageServices.UploadEntity]”,但此字典需要类型为“Delamapp. Models.LoginFolder'。

这意味着我需要不将模型项发送到我的索引视图。现在,我唯一能想到的就是将我的文件列表添加到 viewbag 中,然后将它们显示在我的视图中。但是..这些文件需要很高的安全性。 viewbag 的安全性如何?例如,您可以在其中存储敏感的登录信息吗?你能想出其他方法来实现这一点吗?

提前谢谢你

【问题讨论】:

  • 我试过 viewbag 但我不喜欢它。还有其他建议吗?

标签: asp.net-mvc viewbag


【解决方案1】:

您可以将模型项传递给您的视图,但您传递的模型项与您的视图使用的模型类型不匹配(这就是错误消息所说的)。

因此您需要执行以下操作之一:

  • 修改您的视图以接受您传递给它的模型类型
  • 将您要传递的数据放入您的视图所期望的模型类型中
  • 为您的数据和视图创建一个新的模型类型,并使用它

在安全性方面,我认为使用视图包与模型绑定并没有真正涉及安全问题。两者都只是在控制器和视图之间传递数据的方式,而这一切都发生在 ASP.NET 进程中(也许您将 ViewBag 与 Web 窗体的 ViewState 混淆了?)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 2015-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多