2012-02-15 11 views
0

私はeラーニングサイトを開発しており、Flashでコースを開発しました。私たちのコースが私たちのサイトからダウンロードされるのを防ぐ方法を知りたいのです。ウェブサイトを開発するために使用される技術はC#のASP.NETです。Flashのダウンロードを保護する方法

+2

シンプルです。コースをサイトにアップロードしないでください。 –

+2

これは、Webページをダウンロードせずに閲覧できるようにする方法と似ています。ユーザーのコンピュータに表示するには、すべてのWebコンテンツをダウンロードする必要があります。 – scriptocalypse

答えて

0

ユーザログインシステムを使用してeラーニングサイトを開発していると仮定すると、特定のコースに対する権利を持つ認証されたユーザにのみコースにアクセスできます。コースファイル(swf、html、etc ...)に対する認証されていない/パブリックなリクエストがある場合、そのファイルをクライアントに提供することを拒否します。

私はこれを達成する他の方法があると確信しているが、一つの方法は、あなたのGlobal.asaxの中にそれらのファイル要求を処理するためにある、一般的な考え方は「BEGIN_REQUEST」を使用して伴うだろう、のようなもの:

void Begin_Request(object sender, EventArgs e) 
{ 
    if (Request.FilePath.Contains("yourprotectedpathname")) 
    { 
     if (check session if user is not logged in or does not have access) 
      { 
       Server.Transfer("404.aspx"); 
       return; 
      } 

     } 
    } 
} 

データベース内のどのコースにどのようなコースの権利があるのか​​を保存し、セッションを利用することをお勧めします。

他にも言及したとおり、クライアントには何でもダウンロードできます。この方法では、コースをダウンロードするためのアクセス権を持つクライアントを制限するだけです。

0

他の人が述べたように、ユーザーはコンテンツを見るためにそれをダウンロードできる必要があります。 Flashファイルがスタンドアロンの場合、ユーザーは自分のキャッシュからSWFファイルを取り出してローカルで実行するか、ファイルを別のサーバーにポストしてオンラインでアクセスできます。

FlashファイルのコンテンツがC#スクリプトを介してデータベースから読み取られると、ユーザーが構造を複製するのがはるかに難しくなります。

私は本当にこの方法はお勧めしませんが、ハードコード例えば、あなたのドメインからのみ負荷へのSWFファイル、(AS3)でした:

var myURL:String = "http://www.mydomain.com/"; 
//Check to see if the SWF is being loaded from mydomain 
if (loaderInfo.url.slice(0, myURL.length) != myURL) { 
    //If it isn't being loaded from mydomain, remove all displayobjects from stage 
    while (numChildren > 0) { 
     removeChildAt(0); 
    } 
} 

このActionScriptは、ステージからすべての項目を削除しますSWFをローカルまたは別のドメインからロードしようとすると、空のページが表示されます。ドメインをあなたのFlashファイルにハードコーディングしているので、私はこれをお勧めしません。ファイルを別のドメインに移動すると、コードを更新する必要があります。また、URLのバリエーション(例:https、mydomain.com、www.mydomain.comなど)を考慮する必要があります。

関連する問題