Некоторые изображения нашего сайта являются «частными» и should only be served to authenticated and authorized users.Обслуживание «частных» изображений с помощью защищенного ChildAction
Таким образом, они находятся в /App_Data
и визуализируются с помощью этого обеспеченного действия:
//[ChildActionOnly]
[Authorize]
[HttpGet]
[Route("Image")]
public virtual FileResult Image(string path) {
return base.File(Server.MapPath(path), "image/jpg");
}
В представлении, я <img src="@Url.Action(Image(...))">
, правильно служит, что «частный» изображение. Общественный пользователь не видит этого.
Проблема: я не хочу, чтобы мои пользователи, прошедшие проверку подлинности, могли перейти к ней напрямую, поэтому я добавил атрибут [ChildActionOnly]
. Но когда я это делаю, он не загружается.
Как я могу обслуживать эти изображения для частных пользователей, но сделать их недоступными из запроса?
Да У меня есть авторизация на уровне класса, я отредактирую Q. Но это гарантирует, что несанкционированные пользователи не смогут получить доступ к изображению. Но, к сожалению, авторизованные пользователи могут перейти к нему напрямую. –
См. Обновление выше. –
Что касается обновления, то я боялся этого. Я полагаю, что единственный способ справиться с этим вариантом использования - обернуть изображение в частичном представлении и контролировать, когда/как его визуализировать. Но это слишком много в моем случае. –