2016-09-22 3 views
9

iOS 10のSafariでは、再生アイコンが表示されません。iOS 10で動作しないasp.net認証を必要とするビデオ

私は、ユーザーがログオンしてビデオにアクセスできることを確認するasp.netサーバー経由でビデオを配信します。ただ、iOS 10では、サーバーは401 Unauthorized!

下記のコードでいくつかのテストを行ったところ、iOS 9のSafariで「.ASPXAUTH」というCookieが送信されていましたが、iOS 10のSafariでは認識されません。

<video crossorigin="use-credentials" controls autoplay="autoplay"> 
    <source src="/Server/GetVideo.ashx?id=123"/> 
</video> 

なぜサファリはビデオを再生できないのですか?それを解決する方法はありますか?

+3

ここにも同じです。私の場合は、LAMPスタックアプリケーションであり、Cookie/Sessionを介して事前チェックも行います。 iOS 10は動画を読み込む際にクッキーを送信しないようです。私はまだ解決策を探しています。私は、かなり一般的な使用事例を処理する方法がないとは信じられません。 – Marco

+0

@FlyByあなたはまだこれに対する解決策を見つけましたか? – Hurricane

+0

遅く返事を申し訳ありません。 iOSにsessioncookiesなどの動画を読み込ませることはできないようです。次のように解決しました。 ユーザーごとに一意の「メディアトークン」を生成します。このトークンは、iOS 10を使用しているときに行われた各ビデオ要求にGETパラメータとして追加する必要があります。ビデオトークンを要求するときに、メディアトークンを使用してユーザーを識別します。 この方法では、ビデオを完全に公開する必要はなく、最低限の「セキュリティ」があります。リンクはコピーして貼り付けることができますが、少なくともユーザーセッションが有効である限り有効です。 – Marco

答えて

2

でビデオプレーヤーによってリードバックすることができない私のソリューションはここにある: https://stackoverflow.com/a/40015409/7012293

基本的には、セッションクッキーが見つからない場合は禁止さ403を送信する必要があります。 SafariはセッションCookieを使用して再試行します。

+0

私はこれをテストして動作します!サファリから面白い行動...良い発見、答えに感謝! – Mystogan

2

全く異なる技術スタック(Linux、PHP、Moodle)で全く同じ問題があります。セッションクッキーは、ビデオ(およびオーディオ)リクエストとともに送信されません。

ここではiOSを正しく動作させる方法を見つけられなかったので、問題を解決するために、iOS 10を検出して別のスクリプトに送信して、このスクリプトへのパス内のセッションCookie値のセキュアに暗号化されたバージョンを取得し、パスからの値を使用してそのスクリプト内のセッションを識別します(存在しないCookieではなく)。この変更は機能しますが、複雑でセキュリティにはほとんど影響がなく、さまざまなテクノロジに実装するのが難しい場合があります。

これはiOS 10の大きな問題のようですので、将来のアップデートで修正されることを願っています。また、セッションクッキーは動画には含まれていませんが、その他のクッキーがいくつか含まれています。私は実際にはどちらがそうでないのか把握できませんでした。 (私が試した最初のものの一つは、代わりにセッションクッキーの時限満了を使用していたが、これはどちらかのビデオで送信されませんでした。)

+0

私は同意する、これは本当にiOSの主要な問題のように感じる。私はAppleにバグレポートを送っていますので、希望があればマイナーアップデートでそれを修正します。 – Mystogan

2

ソリューションがここに発見される:

HTML5 video/audio player on mobile Safari (iOS 7 & iOS 10) excludes cookies

有効期限をCookieに設定すると、iOS 10の動画プレーヤーはCookieを読み取ることができます。有効期限が切れる日付なしのセッションクッキーは、iOSの10

+0

理想的には、asp.netのクッキーに有効期限を設定しないでください。非永続的なままにしておきますが、偉大な答えに感謝します!編集:これをテストしましたが、残念ながら問題を解決しませんでした。 – Mystogan

関連する問題