Мы столкнулись с проблемой при загрузке медиа-элемента в нашем решении Sitecore. Мы хотим выполнить аутентификацию пользователя, загружающего носитель. Если у пользователя нет доступа к файлу, нам необходимо перенаправить загрузку этого пользователя/отменить.Sitecore - получить информацию о медиа-элементе по запросу
Вещь, которая решает перенаправление, представляет собой метаданные этого объекта мультимедиа (поле с идентификатором).
Мы сделали модуль:
<add type="Lib.CustomMediaRequestSessionModule, Lib" name="CustomMediaRequestSessionModule" />
Код:
public class CustomMediaRequestSessionModule : IHttpModule
{
public void Init(HttpApplication application)
{
application.BeginRequest += Application_BeginRequest;
}
private void Application_BeginRequest(object source, EventArgs e)
{
var application = (HttpApplication)source;
var currentContext = HttpContext.Current;
if (currentContext.Request.Url.ToString().ToLower().Contains("/~/media/"))
{
//Here we want to authenticate the user
}
}
public void Dispose()
{
}
}
Единственная информация, которую мы получаем из запроса путь к файлу. "/~/media/path/to/file.doc".
Есть ли другой способ получить дополнительную информацию из мультимедийного объекта? Есть ли лучший способ сделать одно и то же действие в Sitecore?