我创建了一个非常简单的模块,用于显示媒体库中特定文件夹中的图像。当我登录到我的 Orchard 站点时,它工作得很好,但图像不会显示给匿名用户。这是我的模块代码的简化版本:
public ActionResult Image(int id, int? width, int? height) {
var items = _mediaLibraryService
.GetMediaContentItems("Portfolio", 0, Int32.MaxValue, null, null);
var mediaItem = items.Where(i => i.Id == id).SingleOrDefault();
if (mediaItem == null) {
return null;
}
string imageFileName = Server.MapPath(mediaItem.MediaUrl);
string contentType = "image/" + Path.GetExtension(imageFileName).Substring(1);
// code to resize image based on given parameters ...
return File(imageFileName, contentType);
}
该操作接受 MediaPart id 和尺寸,按 id 查找项目,调整图像大小,并将其作为 FileResult 返回。这在登录时工作正常,但匿名用户一无所获。在 Chrome 中查看网络选项卡,它显示响应长度为 0。
当然,我在本地测试时不会出现这种行为,仅在我的实时站点上。有任何想法吗?