Если изображения должны быть частными для определенного пользователя, вам следует либо сохранить их вне основной папки приложения, либо поместить файл web.config в каждую из этих папок с изображениями (например, someuid ) и ограничить доступ в файле конфигурации - либо отключение всех (deny = "*"), либо разрешение доступа только для конкретного пользователя (allow = "john").
В обоих случаях вы можете использовать обработчик для потоковой передачи изображения пользователю, но, по крайней мере, вы можете проверить разрешения сейчас. Если запрашивающий пользователь не имеет прав доступа, бросьте ему 401 или даже отобразите другое изображение, например imagenotfound.gif.
Тем не менее, я боюсь, что обработчик будет генерировать много трафика, так как будет один вызов на изображение, я не знаю, сколько изображений вы отображаете на пользователя.