c# - 如何从 C# 将 cookie 传递给 AxShockwaveFlash?

标签 c# .net wpf flash activex

我正在使用 WPF 和 AxShockwaveFlash 开发视频播放器。

它有以下步骤:

  1. 从网络服务中查找视频。
  2. 获取每个视频的信息。
  3. 将视频信息传递给 AxShockwaveFlash 和嵌入式 Flash 视频播放器。
  4. 嵌入式 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/

相关文章:

c# - ListView 2 列 WPF

c# - 使用相对坐标从 C# 绘制路径

c# - 为什么 Clipboard.GetText 不起作用?

c# - 将 C# 列表传递给 X++

c# - 将 KQL 查询使用的所有表名放入 C# 中的列表中

c# - 无法在 ClosedXML 中插入最小日期时间作为单元格值

c# - Silverlight 和异步调用的问题

c# - 发送多个参数到触发的Azure webjos

c# - .NET 4.7 xunit 测试项目在引用 .NET Standard 1.6 项目时无法构建

c# - WPF MoveFocus() 在 Vista 上工作,而不是 XP