【问题标题】:resource sharing in asp.net mvcasp.net mvc中的资源共享
【发布时间】:2011-01-06 16:27:42
【问题描述】:

我在一个解决方案中有 2 个 asp.net mvc2 项目。一个是供访问者使用的普通站点,另一个是管理后端,将由 test.com 和 admin.test.com 等子域分隔。该场景就像管理员将添加一个带有图像的新项目(例如产品),而 test.com 将使用该图像来显示产品。两个应用程序共享一个数据库。因此获取来自数据库的项目详细信息没有问题。但是对于已上传到管理目录(admin.test.com)中的项目图像 - 知道如何从一般域(test.com)获取它来显示吗? 另外,在站点之间分离图像文件甚至 css 或 js 文件等资源以及如何访问它们的最佳方法是什么?

p.s.我正在使用共享主机。

谢谢!

【问题讨论】:

  • 为什么没有上传保存到 test.com 网站上的文件夹?这对我来说是合乎逻辑的答案。
  • 因为要求是资源必须保留在其他地方!疯了……我知道。

标签: c# asp.net asp.net-mvc-2


【解决方案1】:

您可以上传到第三个子域或前端域。 您上传到物理文件夹。这个文件夹可以是appSetting值左右。

因此,您将获得与 web.config appSettings 中类似的设置:

<add key="ProductImagesPhysicalFolder" value="x:\websites\frontend\product-images" />
<add key="ProductImagesFolderUrl" value="http://frontend.com/product-images" />

上传到物理文件夹(假设您在 ISS 中设置了权限以允许对该文件夹进行写访问),并使用 GetProductImageUrl(string imageFilename) 之类的辅助方法来获取给定文件名的图像的 URL(保存在 DB 中)。

【讨论】:

  • 第三个子域听起来很有趣。访问文件不会有问题。但是您能否详细解释一下如何在考虑最佳安全方法的同时在第三个子域中上传?
  • 无论您是使用第三个子域(这将有助于提高性能,因为只有当您拥有如此多的产品图片时,因为请求它们现在与应用程序代码分开)还是您直接发布前端站点,步骤是一样的。
  • 为管理站点的应用程序池设置 windows 用户,授予该用户对图像文件夹的完全访问权限。公共前端站点只能对该文件夹具有读取权限。这应该足够安全。
  • 恐怕这是不可能的,因为我使用的是共享主机,因此无法创建用户!
  • 好的。你可以添加虚拟目录吗?也许在管理站点中创建对前端同一文件夹具有写入权限的虚拟目录。
猜你喜欢
  • 2021-10-10
  • 2015-10-27
  • 1970-01-01
  • 2022-12-12
  • 2011-08-17
  • 2020-05-17
  • 2011-05-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多