1

私のサイトには、ユーザーがログインして Windows Media ストリーミング コンテンツを表示できるメンバー専用エリアがあります。

ASX ファイルを提供する PHP スクリプトを作成しましたが、これをセッション情報で検証できません。これは、PHPページではなくWMPがリクエストを行っているためだと思います。

ASX ファイルを保護するエレガントな方法を提案できる人はいますか?

4

2 に答える 2

0

これを試すことができます:

//$user->isAuthenticated is only for ilustration, use whatever method you
//use to check if the user is authenticated
if($user->isAuthenticated()) {
      $asx = file_get_contents("/path/to/my/file.asx");
      header("Content-type: video/x-ms-asf");
      echo $asx;
} else {
      //Tell the user that he can't view this asx
}
于 2009-07-24T06:21:12.637 に答える
0

私なら、PHP セッション ID を .asx 要求に組み込みます。通常、この識別子は Cookie に保存され、ページ要求ごとに PHP に渡されます。この場合、WMP は Cookie を送信していないため、リクエストが認証されているかどうかを知る方法がありません。

ASX ファイルのダウンロード リンクを出力するときは、セッション ID を GET 変数として追加します。

$download_link = "http://myserver.com/download_asx_file.php?"
$download_link .= "f=$file_id&";
$download_link .= htmlspecialchars(SID);

session_start()これで、一番上で呼び出すdownload_asx_file.phpと、セッションを正しく見つけてロードし、通常どおり認証できるようになります。

:SID定数はPHPSESSID=12345678(またはそのユーザーのセッションがたまたま何であれ)に評価されます

于 2009-07-24T06:27:18.130 に答える