Mvc viewbag的安全性如何?

时间:2014-05-05 11:39:21

标签: asp.net-mvc viewbag

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

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

//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的安全性如何?您可以在那里存储敏感的登录信息吗?你能想出其他方法来实现这个目标吗?

提前谢谢

1 个答案:

答案 0 :(得分:0)

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

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

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

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