Asp.net mvc 3 Safari iFrame cookie问题

Asp.net mvc 3 Safari iFrame cookie问题,asp.net-mvc-3,iframe,safari,Asp.net Mvc 3,Iframe,Safari,我意识到有几个问题与此相关;然而,我一直在疯狂地试图使这项工作。简单地说,我有一个MVC3应用程序,它存在于我们公司的服务器上,并在客户端URL的iFrame中提供。所有其他浏览器都很好,比如Safari的execpt,默认情况下打开了整个“无第三方cookie”设置 以下是我到目前为止所做的尝试(我们有自定义库,所以其中一些函数是特定于我们的东西的): 视图: Javascript: safariValidate: function(){ if ($.browser.safari == t

我意识到有几个问题与此相关;然而,我一直在疯狂地试图使这项工作。简单地说,我有一个MVC3应用程序,它存在于我们公司的服务器上,并在客户端URL的iFrame中提供。所有其他浏览器都很好,比如Safari的execpt,默认情况下打开了整个“无第三方cookie”设置

以下是我到目前为止所做的尝试(我们有自定义库,所以其中一些函数是特定于我们的东西的):

视图:

Javascript:

safariValidate: function(){
  if ($.browser.safari == true && document.cookie.indexOf("safari_cookie_set") == -1){
          $("#safari-fix-form").submit();
      }
}
因此,最初的前提是使用javascript(因此是.submit())自动发布到iframe。这似乎起了作用,大约有一天。现在,无论我如何发布(注意这里的输入按钮…),都不会在iframe中设置cookie


有什么想法吗

经过深思熟虑和与不同浏览器的斗争,我们公司最终决定放弃cookie,转而使用基于数据库的会话。这完全解决了这个问题,因为我们正在处理一个在iframe中托管我们网站的第三方网站


希望这能帮助其他人-在iframe中使用Cookie没有干净的方法。

如何在iframe中跨页面请求持久化会话?这是两年前创建/完成的,但如果我没记错的话,我们会传递会话GUID,并始终将其包含在模型库中。这样,无论您来自何处,GUID都是可用的,但这也是来自非常泄漏的内存。
[AcceptVerbs(HttpVerbs.Post)]
public virtual ActionResult SafariRedirect()
{
  ActionResult result = null;

  Response.Cookies.Add(new HttpCookie("safari_cookie_set", "cookie ok"));
  result = RedirectToRouteNoSSL(Index);

  return result;
}
safariValidate: function(){
  if ($.browser.safari == true && document.cookie.indexOf("safari_cookie_set") == -1){
          $("#safari-fix-form").submit();
      }
}