0
我对提供图片trought LDAP自定义插件IPlugin
和IVirtualImageProvider
插件
public bool IsPathVirtual(string virtualPath)
{
return virtualPath.StartsWith(VirtualFilesystemPrefix, StringComparison.OrdinalIgnoreCase);
}
public bool FileExists(string virtualPath, System.Collections.Specialized.NameValueCollection queryString)
{
String username = Path.GetFileNameWithoutExtension(virtualPath);
return IsPathVirtual(virtualPath) && HasPhoto(username);
}
如果我打我的服务器使用以下URL
http://localhost:7805/ad/username.png?w=100 - > 200图像从LDAP
服务一切工作正常 没有查询字符串的howerver插件不被调用 http://localhost:7805/ad/username.png - > 404代码不会被调用
这是imageresizer被suposed的工作方式?
我已经V4安装并写了一个从BlobProviderBase派生的自定义插件,但由于某种原因,重写OpenAsync方法是*不*被称为提供无查询字符串的图片网址时。 – Iian
如果没有查询字符串,您将依赖于特定的ASP.NET和IIS配置将请求传递给某种类型的StaticFileHandler,然后这些查询将与VirtualPathProvider系统进行检查。 –
我有点困惑 - 上面的回答似乎意味着通过实现IVirtualImageProviderVpp可以在v4中实现。我注意到,当没有查询字符串时,调用插件事件处理程序,但除非存在查询字符串,否则执行不会到达OpenStream。现在,我在事件处理程序中为QueryString集合添加了一个“虚拟”值(maxwidth),但不必那么做...... – Iian