ASP.NET Framework 4.8 视频 DRM 集成
将 Windows/IIS 源码适配器添加到现有 ASP.NET Framework 应用,并接入每次请求使用的授权委托。
包含预览版 SDK、应用示例和源码。请保留解压后的目录结构。
需要自定义的三个位置#
- 配置
App_Code/DrmXPlayback.cs: Settings设置每次请求使用的内容查询和服务器管理的策略。
- 授权
您的 Application_Start
使用您自己的权限查询实现 ApplicationServices.Authorize。
- 嵌入
Default.aspx 或现有页面
复制播放器标记,并将请求路由到 Playback.ashx。
1. 将适配器添加到 Windows/IIS#
使用 .NET Framework 4.8 或 4.8.1。此集成提供源码,而非 NuGet SDK。在 Web Site 项目中复制 App_Code/DrmXPlayback.cs 和 Playback.ashx;在 Web Application/MVC 项目中,将 C# 文件作为应用源码编译。将相关 Web.config 设置与现有身份验证配置合并。
2. 测试一个 Content ID#
在 Settings 中设置 ContentId 和 Policy。设置服务器进程变量 DRMX_PLAYBACK_SITE_ID、DRMX_PLAYBACK_SITE_KEY、DRMX_PLAYBACK_ACCESS_KEY 和 DRMX_PUBLIC_ORIGIN。
# Local IIS Express only, after setting the three credentials:
$env:DRMX_PUBLIC_ORIGIN = "http://localhost:48087"
$env:DRMX_LOCAL_DEMO = "1"
& "$env:ProgramFiles/IIS Express/iisexpress.exe" "/path:$PWD" /port:48087 /systray:false从 examples/aspnet-framework 运行,然后打开 http://localhost:48087/Default.aspx。IIS 会继承服务器环境变量。修改部署设置后,请回收应用程序池。
3. 接入现有权限系统#
在应用启动时设置委托。下方数据访问调用仅作示例:
ApplicationServices.Authorize = (userId, contentId, contentType) =>
customerPermissions.CanWatch(userId, contentId, contentType);处理程序读取经过身份验证的 HttpContext.User,优先使用 NameIdentifier,不存在时使用 Identity.Name。使用稳定的账号标识符。每次请求时,将选定的网站视频查询为对应的 Content ID;若查询需要视频选择参数,请同时在页面和处理程序 URL 中保留该参数。
4. 复用播放器标记#
从 Default.aspx 复制脚本标签和 Web Component。会话处理程序应保持同源;使用 IIS 虚拟目录时,请调整相对于应用的 URL。保留请求验证、响应 Content ID 绑定,以及应用的 CSRF/会话保护。部署前禁用 DRMX_LOCAL_DEMO。
上线前检查#
- 以有权限的用户登录,并在支持的浏览器中播放已发布的视频。
- 测试未登录和未付费用户,再测试权限被撤销或到期的情况。新的会话请求必须被拒绝。
- 尝试修改浏览器中的 Content ID 或网站视频 ID。服务器必须检查新的选择。
- 设置准确的公共 HTTPS 源,保留框架的会话/CSRF 保护,并禁用演示身份代码。
已有会话和 DRM 许可证具有各自的有效期。新请求会检查权限变更,但不会清除已经签发的许可证。
DRM-X 6.0