gpt4 book ai didi

c# - Sitecore - 根据要求获取有关媒体项目的信息

转载 作者:太空宇宙 更新时间:2023-11-03 21:19:53 24 4
gpt4 key购买 nike

我们在 Sitecore 解决方案中下载媒体项目时遇到了问题。我们想要验证下载媒体的用户。如果用户无权访问该文件,我们需要重定向该用户/取消下载。

决定重定向的是媒体项的元数据(带 ID 的字段)。

我们制作了一个模块:

<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 中执行相同操作是否有更好的方法?

最佳答案

您可以使用 MediaManager.ParseMediaRequest 方法获取媒体项:

MediaRequest request = MediaManager.ParseMediaRequest(HttpContext.Current.Request);

if (request == null)
{
return false;
}

Media media = MediaManager.GetMedia(request.MediaUri);

这里有一篇很好的博客文章,解释了如何限制 Sitecore 中的媒体项目 Restricting access to Sitecore Media Items

关于c# - Sitecore - 根据要求获取有关媒体项目的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31535713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com