我正在使用 WPF 和 AxShockwaveFlash 开发视频播放器。
它有以下步骤:
- 从网络服务中查找视频。
- 获取每个视频的信息。
- 将视频信息传递给 AxShockwaveFlash 和嵌入式 Flash 视频播放器。
- 嵌入式 Flash 视频播放器开始从网络服务流式下载。
我在第 4 步遇到问题。
第1-3步共享一个cookie(CookieContainer),但第4步不能。
如何将其 cookie 传递给嵌入式 flash 视频播放器?
最佳答案
它有点长,而不是使用 Shockwave,您应该使用 WebBrowser 并导航到一个 ashx 或 aspx 页面,其中所有 cookie 都从您的 cookiecontainer 设置为 webbrowser 的 cookie。
为了正确设置 cookie,您必须在您的 asp.net 网站上创建一个页面作为“RedirectWithSession.ashx”,
public class RedirectWithSession : IHttpHandler{
public void ProcessRequest(HttpContext context){
Response.Cookies.Add("ASP.NET_SessionID", Request.QueryString["SessionID"]);
Response.Redirect(Request.QueryString["RedirectUrl"]);
}
}
现在在您的 WPF 应用程序中,您必须找到 ASP.NET_SessionID cookie 并将其通过 url 传递给 webbrowser,
http://host.com/RedirectWithSession.ashx?SessionID=[SessionID]&RedirectUrl=[Url]
您的网络浏览器将首先访问处理程序,然后它会正确设置 session ,然后您的视频 url 将被加载,这样您的网络服务上下文和网络浏览器上下文的 session 将被共享。
我刚刚向您展示了 ASP.NET_SessionID 的示例,您可以传递多个 cookie。这是最好的方法,您还可以使用自定义页面和 javascript 等,但我不知道它们是否能在所有安全模式下正常工作。
关于c# - 如何从 C# 将 cookie 传递给 AxShockwaveFlash?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1892597/