DRM-X 6.0 鸽子和橄榄枝标志DRM-X 6.0文档
◎ 简体中文

ASP.NET Core Universal Player 集成

安装 .NET SDK,接入已验证的用户身份和内容查询,然后启用随附的播放会话端点。

查看 Markdown在线示例更新于 2026-09-25
下载此平台集成包

包含预览版 SDK、应用示例和源码。请保留解压后的目录结构。

所有平台与完整集成包 · 了解集成流程

需要自定义的三个位置#

  1. 配置Program.cs: AddDrmXPlayback

    设置服务器凭据、应用 ID 和保护策略。

  2. 授权QuickStartCatalog.FindAuthorizedVideoAsync

    查询您自己的数据库,返回 QuickStartVideo 或 null。

  3. 身份验证

    您现有的 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 许可证具有各自的有效期。新请求会检查权限变更,但不会清除已经签发的许可证。