需要 asp.net 身份验证的视频无法在 iOS 10 上运行
Video requiring asp.net authentication not working on iOS 10
在 iOS10 的 Safari 上,我的视频无法播放,只显示播放图标。
我通过 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>
为什么 safari 无法播放我的视频?有什么办法可以解决吗?
我们在完全不同的技术堆栈(Linux、PHP、Moodle)中遇到了完全相同的问题。我们的会话 cookie 不会随视频(和音频)请求一起发送。
我们无法找到使 iOS 在这里正常运行的方法,因此我们正在通过检测 iOS 10 并将其发送到不同的脚本来提供视频,将会话 cookie 值的安全加密版本传递到该脚本的路径中,然后进行各种修改,以便使用路径中的值来识别该脚本中的会话(而不是不存在的 cookie)。此更改有效但很复杂,对安全的影响较小,并且可能更难在不同的技术上实施。
这似乎是 iOS 10 的一个主要问题,所以我希望它可以在未来的更新中得到修复。另外,我注意到虽然我们的会话 cookie 不包含在视频中,但包含其他几个 cookie!我实际上无法弄清楚哪些不是。 (我尝试的第一件事是使用定时过期而不是会话 cookie,但这也没有随视频一起发送。)
解决方案可在此处找到:
HTML5 video/audio player on mobile Safari (iOS 7 & iOS 10) excludes cookies
为 cookie 设置过期日期,iOS10 中的视频播放器可以读回 cookie。 iOS 10.
中的视频播放器无法读取没有过期日期的会话 cookie
我的解决方案在这里:
基本上,如果会话 cookie 丢失,您需要发送 403 禁止。 Safari 将使用会话 cookie 重试。
在 iOS10 的 Safari 上,我的视频无法播放,只显示播放图标。
我通过 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>
为什么 safari 无法播放我的视频?有什么办法可以解决吗?
我们在完全不同的技术堆栈(Linux、PHP、Moodle)中遇到了完全相同的问题。我们的会话 cookie 不会随视频(和音频)请求一起发送。
我们无法找到使 iOS 在这里正常运行的方法,因此我们正在通过检测 iOS 10 并将其发送到不同的脚本来提供视频,将会话 cookie 值的安全加密版本传递到该脚本的路径中,然后进行各种修改,以便使用路径中的值来识别该脚本中的会话(而不是不存在的 cookie)。此更改有效但很复杂,对安全的影响较小,并且可能更难在不同的技术上实施。
这似乎是 iOS 10 的一个主要问题,所以我希望它可以在未来的更新中得到修复。另外,我注意到虽然我们的会话 cookie 不包含在视频中,但包含其他几个 cookie!我实际上无法弄清楚哪些不是。 (我尝试的第一件事是使用定时过期而不是会话 cookie,但这也没有随视频一起发送。)
解决方案可在此处找到:
HTML5 video/audio player on mobile Safari (iOS 7 & iOS 10) excludes cookies
为 cookie 设置过期日期,iOS10 中的视频播放器可以读回 cookie。 iOS 10.
中的视频播放器无法读取没有过期日期的会话 cookie我的解决方案在这里:
基本上,如果会话 cookie 丢失,您需要发送 403 禁止。 Safari 将使用会话 cookie 重试。