Browse Source

Minor update to DiskCache to prevent unauthorized permission issue over UNC share

Former-commit-id: b70c0f3c84f1922537035741651a5f51a8ec4d4d
af/merge-core
Kenny Burns 12 years ago
committed by James South
parent
commit
ed9d0201cc
  1. 20
      src/ImageProcessor.Web/NET45/Caching/DiskCache.cs

20
src/ImageProcessor.Web/NET45/Caching/DiskCache.cs

@ -51,7 +51,7 @@ namespace ImageProcessor.Web.Caching
/// <summary>
/// The absolute path to virtual cache path on the server.
/// </summary>
private static readonly string AbsoluteCachePath = HostingEnvironment.MapPath(ImageProcessorConfig.Instance.VirtualCachePath);
public static readonly string AbsoluteCachePath = HostingEnvironment.MapPath(ImageProcessorConfig.Instance.VirtualCachePath);
/// <summary>
/// The request for the image.
@ -229,7 +229,7 @@ namespace ImageProcessor.Web.Caching
DirectoryInfo parentDirectoryInfo = directoryInfo.Parent;
// ReSharper disable once PossibleNullReferenceException
foreach (DirectoryInfo enumerateDirectory in parentDirectoryInfo.EnumerateDirectories())
foreach (DirectoryInfo enumerateDirectory in SafeEnumerateDirectories(parentDirectoryInfo))
{
IEnumerable<FileInfo> files = enumerateDirectory.EnumerateFiles().OrderBy(f => f.CreationTimeUtc);
int count = files.Count();
@ -260,6 +260,22 @@ namespace ImageProcessor.Web.Caching
}
}
public static IEnumerable<DirectoryInfo> SafeEnumerateDirectories(DirectoryInfo directoryInfo)
{
IEnumerable<DirectoryInfo> directories;
try
{
directories = directoryInfo.EnumerateDirectories();
}
catch
{
return Enumerable.Empty<DirectoryInfo>();
}
return directories;
}
/// <summary>
/// Gets the full transformed cached path for the image.
/// The images are stored in paths that are based upon the sha1 of their full request path

Loading…
Cancel
Save