ILicenseAcquisitionHandler.HandleLicenseAcquisitionAsync 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
服务实现的方法处理许可证获取请求。
public System.Threading.Tasks.Task<Microsoft.Media.Drm.LicenseResponse> HandleLicenseAcquisitionAsync (Microsoft.Media.Drm.ILicenseChallenge challenge);
abstract member HandleLicenseAcquisitionAsync : Microsoft.Media.Drm.ILicenseChallenge -> System.Threading.Tasks.Task<Microsoft.Media.Drm.LicenseResponse>
Public Function HandleLicenseAcquisitionAsync (challenge As ILicenseChallenge) As Task(Of LicenseResponse)
参数
- challenge
- ILicenseChallenge
ILicenseChallenge已从客户端接收的已分析。
返回
LicenseResponse要返回到客户端的 。
注解
许可证获取请求是客户端对许可证 () 的请求,该请求授予对指定内容、许可证 (提供密钥交换和/或当前服务器时间的) 执行操作的权限。 在此方法中,服务通常会按顺序执行以下步骤。
- CustomData从传入请求中读取 。
- 对用户进行身份验证。
- 如果许可证 () 只应交付给具有已注册域的客户,则阻止是否 GetDomainCertificates() 为此客户端返回有效的证书,如果未返回,则引发 DomainRequiredException 。
- 如果应 (必须颁发许可证 () ,除非 LicenseServerTimeRequested) 为 true,请创建一个或多个 License 对象。
- 对于每个 License 创建项,请将任何所需的 Right和限制添加到许可证,并将 BindingKey 许可证绑定到相应的证书或根许可证。 对于内容许可证,请设置 ContentEncryptionKey 属性。 (如果存在,服务可以使用 EncryptionType 中的 来确定请求ContentKeyType的 .) 然后调用 AddLicense(License)ContentHeader 。
- 如果 ReeFeatureList 包含 LicenseServerTime,则 LicenseServerTimeCertificate 设置 属性。
- 如果支持许可证确认请求,请设置 TransactionId 属性并存储验证许可证确认结果所需的事务数据。
- 在 上 LicenseResponse设置任何其他所需属性。