最近被一个获取许可证的传输方式搞得很郁闷,一直在考虑在哪里设置可以影响获取许可证的传输方式(说明:获取许可证有两种,Silent and NonSilent),起先,根据我的思考,我想可能在加密媒体文件的时候应该可以设置客户要获取许可证的传输方式,但我找遍了MS DRM里的Right,Protect,Key,Header这个几个类对象,都没有找到设置传输方式,同时也在网上搜索,也没有查找到相关的信息,这个时候非常的郁闷,突然在MS的站点上被我找到了。原来。获取许可证的传输方式是不受内容提供商的影响,由于MEDIA PLAYER出与客户安全的考虑,当播放受保护内容时,会提示如下内容:
“要求具有许可证才能播放选择的内容,要获取许可证
地址:
http://localhost/demo.aspx
网页中包含的内容可能会对您的计算机造成危害。继续操作之前必须确
确实要打开网页获取许可证吗?”
这个时候选择确定(即要获取许可证),那么如果客户端设置为“静默”方式,则不会再弹出一个窗口,但如果客户端设置为“非静默”方式,则会提出一个窗口,窗口的内容可由办法许可证服务商提供。
至于要怎么把上面的这个提示框去掉(即不要提示),我现在也还没找到方法,但我在播放china-drm的静默演示时,却发现那个媒体文件不会出现这个提示框。怪异中。。。。
设置获取许可证传输方式:
打开播放器(Windows Media Player)-->工具-->选项-->隐私-->自动获取受保护内容的许可证,如果选择,表示已静默方式获取许可证。
颁发许可证服务商必须对这两种情况做出相应的处理
//获取客户获取许可证传输方式:
string Silent = Request.Form["nonsilent"];
//客户端如果设置静默传输,那么这个值会为null
if(Silent != null)//是非静默方式传输
{
//这里可以进行其他处理,这里应该调用客户端ActiveX
/*
<Script Language="JavaScript">
function StoreV2License(hr)
{
netobj.StoreLicense( "<%= 许可证 %>" );
}
</Script>
<BODY onLoad="StoreV2License()">
<OBJECT classid=clsid:A9FC132B-096D-460B-B7D5-1DB0FAE0C062 height=0 id=netobj
width=0>
<EMBED MAYSCRIPT TYPE="application/x-drm-v2" HIDDEN="true">
</OBJECT>
*/
}
else
{
Response.Write(许可证);//这里可以直接输出证书
}
string Silent = Request.Form["nonsilent"];
//客户端如果设置静默传输,那么这个值会为null
if(Silent != null)//是非静默方式传输
{
//这里可以进行其他处理,这里应该调用客户端ActiveX
/*
<Script Language="JavaScript">
function StoreV2License(hr)
{
netobj.StoreLicense( "<%= 许可证 %>" );
}
</Script>
<BODY onLoad="StoreV2License()">
<OBJECT classid=clsid:A9FC132B-096D-460B-B7D5-1DB0FAE0C062 height=0 id=netobj
width=0>
<EMBED MAYSCRIPT TYPE="application/x-drm-v2" HIDDEN="true">
</OBJECT>
*/
}
else
{
Response.Write(许可证);//这里可以直接输出证书
}