最近被一個擷取許可證的傳輸方式搞得很鬱悶,一直在考慮在哪裡設定可以影響擷取許可證的傳輸方式(說明:擷取許可證有兩種,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(許可證);//這裡可以直接輸出認證
}