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