Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure媒体服务AAD令牌C#_C#_Azure_Azure Active Directory_Azure Media Services - Fatal编程技术网

Azure媒体服务AAD令牌C#

Azure媒体服务AAD令牌C#,c#,azure,azure-active-directory,azure-media-services,C#,Azure,Azure Active Directory,Azure Media Services,目前,我很难尝试将AAD与Azure媒体服务集成。 我必须从AAD获得一个承载令牌,然后将该令牌传递给Azure Media Player以播放加密视频,但我总是遇到以下错误:无法解密加密视频源。(0x2050004) 下面是我正在使用的两段代码。 C#代码: “Microsoft.WindowsAzure.MediaServices.Client”版本为4.1 Asp.net/JavaScript代码: <script> var playerOptions = {

目前,我很难尝试将AAD与Azure媒体服务集成。 我必须从AAD获得一个承载令牌,然后将该令牌传递给Azure Media Player以播放加密视频,但我总是遇到以下错误:无法解密加密视频源。(0x2050004)

下面是我正在使用的两段代码。 C#代码:

“Microsoft.WindowsAzure.MediaServices.Client”版本为4.1

Asp.net/JavaScript代码:

<script>
    var playerOptions = {
        "nativeControlsForTouch": false,
        controls: true,
        autoplay: true,
        width: "100%",
        height: "auto",
        techOrder: ["azureHtml5JS", "flashSS", "html5FairPlayHLS", "silverlightSS", "html5"],
        logo: {
            enabled: true
        },
        poster: "https://xxxxxxxxxx.blob.core.windows.net/assetxxxxxxxx-xxxx-410d-xxxx-7xxxxxxxxxxxx/xxxxx11563.jpg?sv=2015-07-08&sr=c&si=xxxxxx-xxxx-xxxxxxx-xxxxxx&sig=xxxxxxxxxxxxxxxb%2F%2FTlyHLU6DTcf%2FdfWMaMSqw%3D&se=2078-06-12T16%3A08%3A03Z",
        plugins: {
            ga: {
                'eventsToTrack': ['playerConfig', 'loaded', 'playTime', 'percentsPlayed', 'start', 'end', 'play', 'pause', 'error', 'buffering', 'fullscreen',     'seek', 'bitrate'],
                'debug': false
            }
        }
    };    
    var playerSrc = [{
        src: "http://xxxxxxxxx.streaming.mediaservices.windows.net/xxxxxx-xxx-xxxx-xxx-xxxx/xxxxxx.ism/manifest" + "(format=m3u8-aapl)",
        "type": "application/vnd.ms-sstr+xml",
        "protectionInfo": [{
            "type": "AES",
            "authenticationToken": "Bearer @ViewBag.Token"
        }],
        "streamingFormats":["SMOOTH","DASH"]
    }];
</script>

变量播放选项={
“nativeControlsForTouch”:错误,
控制:对,
自动播放:对,
宽度:“100%”,
高度:“自动”,
techOrder:[“azureHtml5JS”、“flashSS”、“html5FairPlayHLS”、“silverlightSS”、“html5”],
标志:{
已启用:true
},
海报:“https://xxxxxxxxxx.blob.core.windows.net/assetxxxxxxxx-xxxx-410d-xxxx-7xxxxxxxxxxxx/xxxxx11563.jpg?sv=2015-07-08&sr=c&si=xxxxxx-xxxxxx-xxxxxx-xxxxxx&sig=XXXXXXXXXXXXX B%2F%2FTlyHLU6DTcf%2FDFWAMSQW%3D&se=2078-06-12T16%3A08%3A03Z“,
插件:{
ga:{
“eventsToTrack':['playerConfig'、'loaded'、'playTime'、'percentsPlayed'、'start'、'end'、'play'、'pause'、'error'、'buffering'、'fullscreen'、'seek'、'bitrate'],
“调试”:false
}
}
};    
变量playerSrc=[{
src:“http://xxxxxxxxx.streaming.mediaservices.windows.net/xxxxxx-xxx-xxxx-xxx-xxxx/xxxxxx.ism/manifest“+”(格式=m3u8 aapl)”,
“类型”:“application/vnd.ms sstr+xml”,
“保护信息”:[{
“类型”:“AES”,
“authenticationToken”:“Bearer@ViewBag.Token”
}],
“streamingFormats”:[“平滑”、“破折号”]
}];


Azure Player的链接是:

最后,我找到了解决这个问题的方法。按照我所做的步骤进行操作:

  • 如果您不使用azure媒体服务资源管理器,请在此处获取:github.com/azure/azure-media-services-explorer。这将使您的生活更容易管理视频
  • 选择您的视频源并单击右键。选择“编码” 使用媒体编码器标准(MES)对资产进行编码”

  • 选择“内容自适应多比特率MP4”,然后单击“启动编码”。

  • 工作完成后。在生成的文件中单击鼠标右键,然后单击“安全” 为资产“”添加动态加密和密钥传递策略。
  • 选择保护“信封清除键”
  • 接下来的步骤,使用默认值:步骤2-自动生成,步骤3-是,使用1个选项定义内容密钥的授权策略
  • 步骤3,内容密钥的授权策略选项:令牌。令牌类型:SWT–简单Web令牌。令牌属性:填充颁发者和访问群体。然后单击“确定”
  • 在刚刚加密的视频上,右键单击并选择“发布” 创建一个定位器”。保持选项不变,然后单击“创建”按钮。
  • 右键单击视频并单击“显示信息”或按F4
  • 选择“内容键”选项卡,然后选择“内容信封”,并保留“ID”和“限制要求”(TokenRestrictionTemplate XML)。
  • 播放媒体。右键单击视频并单击“播放” 使用azure媒体播放器”。当您请求时,单击“创建测试令牌”按钮。
  • 当浏览器打开时,查看“保护承载器”。此字段是更新令牌的位置。
  • 现在是C代码(对不起,我不知道为什么代码格式不被应用):

    string tokenTemplateString=“{{在此处粘贴您在步骤10(限制要求)中获得的XML}”; TokenRestrictionTemplate tokenTemplate= TokenRestrictionTemplateSerializer.反序列化(tokenTemplateString)
    string testToken=TokenRestrictionTemplateSerializer.GenerateTestToken(tokenTemplate,tokenTemplate.PrimaryVerificationKey,新Guid(“在此处粘贴您在步骤10中获得的ID。删除“nb:kid:UUID:”部分!”)、DateTime.Now.AddHours(10)); WriteLine(“授权令牌是:\nBearer{0}”,testToken)

  • 在步骤12标记的字段中使用生成的令牌。别忘了用“持票人”这个词


  • 请把你的代码放在你的问题里,不要作为链接。@JeroenHeier,完成!对于AMS Explorer v3,这些步骤有所更改,但功能仍然保留。现在有了“安全”选项,但右键单击->发布->清除密钥流->创建定位器有效地替代了步骤4和5。
    <script>
        var playerOptions = {
            "nativeControlsForTouch": false,
            controls: true,
            autoplay: true,
            width: "100%",
            height: "auto",
            techOrder: ["azureHtml5JS", "flashSS", "html5FairPlayHLS", "silverlightSS", "html5"],
            logo: {
                enabled: true
            },
            poster: "https://xxxxxxxxxx.blob.core.windows.net/assetxxxxxxxx-xxxx-410d-xxxx-7xxxxxxxxxxxx/xxxxx11563.jpg?sv=2015-07-08&sr=c&si=xxxxxx-xxxx-xxxxxxx-xxxxxx&sig=xxxxxxxxxxxxxxxb%2F%2FTlyHLU6DTcf%2FdfWMaMSqw%3D&se=2078-06-12T16%3A08%3A03Z",
            plugins: {
                ga: {
                    'eventsToTrack': ['playerConfig', 'loaded', 'playTime', 'percentsPlayed', 'start', 'end', 'play', 'pause', 'error', 'buffering', 'fullscreen',     'seek', 'bitrate'],
                    'debug': false
                }
            }
        };    
        var playerSrc = [{
            src: "http://xxxxxxxxx.streaming.mediaservices.windows.net/xxxxxx-xxx-xxxx-xxx-xxxx/xxxxxx.ism/manifest" + "(format=m3u8-aapl)",
            "type": "application/vnd.ms-sstr+xml",
            "protectionInfo": [{
                "type": "AES",
                "authenticationToken": "Bearer @ViewBag.Token"
            }],
            "streamingFormats":["SMOOTH","DASH"]
        }];
    </script>