ASP.NET Core Universal Player 集成
安装 .NET SDK,接入已验证的用户身份和内容查询,然后启用随附的播放会话端点。
包含预览版 SDK、应用示例和源码。请保留解压后的目录结构。
需要自定义的三个位置#
- 配置
Program.cs: AddDrmXPlayback设置服务器凭据、应用 ID 和保护策略。
- 授权
QuickStartCatalog.FindAuthorizedVideoAsync查询您自己的数据库,返回 QuickStartVideo 或 null。
- 身份验证
您现有的 ASP.NET Core 中间件
提供稳定的 NameIdentifier 声明,并保护映射的端点。
1. 运行随附的示例#
cd examples/sdk/aspnet-core
# Set DRMX_PLAYBACK_SITE_ID, DRMX_PLAYBACK_SITE_KEY and DRMX_PLAYBACK_ACCESS_KEY.
# For localhost only, set DRMX_LOCAL_DEMO=1.
dotnet run使用 .NET 10。项目引用 Haihaisoft.DrmX.AspNetCore,其 NuGet.Config 指向随附的包。在 Program.cs 的 QuickStartCatalog.FindAuthorizedVideoAsync 中替换 your-published-content-id。打开 http://127.0.0.1:8105/?videoId=1。
2. 接入您自己的内容查询#
用带权限检查的查询替换演示目录实现。下方示例中的数据访问层由您的应用提供:
var video = await repository.FindAuthorizedVideoAsync(
userId, videoId, cancellationToken);
if (video is null) return null;
return new QuickStartVideo(video.DrmxContentId, video.Title);随附的 QuickStartEntitlement : IDrmXContentEntitlement 会复用此查询,并核对请求的 Content ID 和类型。请保留此比较。目录服务的作用域是单个请求;不要为每个用户修改单例对象中的 Content ID。
3. 接入正常的身份验证#
用现有身份验证替换本地演示身份中间件。保留稳定的 NameIdentifier 声明,并使用授权策略保护页面和 MapDrmXPlaybackSession() 端点,例如 .RequireAuthorization()。配置实际 HTTPS 主机,并保留同源请求检查。
4. 将播放器添加到课时页面#
复用示例中的脚本标签和 Web Component。会话 URL 包含 ?videoId=...,因此页面和会话请求会查询同一个选定课时。当前示例在 AddDrmXPlayback 中配置应用级策略;Content ID 则按每次请求查询。
上线前检查#
- 以有权限的用户登录,并在支持的浏览器中播放已发布的视频。
- 测试未登录和未付费用户,再测试权限被撤销或到期的情况。新的会话请求必须被拒绝。
- 尝试修改浏览器中的 Content ID 或网站视频 ID。服务器必须检查新的选择。
- 设置准确的公共 HTTPS 源,保留框架的会话/CSRF 保护,并禁用演示身份代码。
已有会话和 DRM 许可证具有各自的有效期。新请求会检查权限变更,但不会清除已经签发的许可证。
DRM-X 6.0