【问题标题】:Sessions or cookies not passed through iframe未通过 iframe 传递的会话或 cookie
【发布时间】:2023-04-01 16:36:01
【问题描述】:

我正在尝试在 iframe 和我的主页之间传递数据,但会话根本没有传递,cookie 也没有传递。 我不能将它作为查询传递,因为我不想像那样重新加载页面。 大多数情况下,我想从 iframe 获取数据,尽管示例显示其他方式,但这样更容易理解。

这是我的主页代码:

 // Session["Page"] = GetCurrentPageName(); I tried this too
        Response.Cookies.Add(new HttpCookie("Page", GetCurrentPageName())); //Page name is an example   
         SignPad = new LiteralControl("<iframe border='0' frameborder='0' allowTransparency='true' id='" + ((Control)sender).ID + "frame"  name='embeddedFrame' runat=server src='www.website.com/SignPad.aspx"></iframe>");
        ((Control)sender).Parent.Controls.Add(SignPad);

下面是我的 iFrame 代码:

protected void Unnamed_Click(object sender, EventArgs e)
{
    Response.Cookies.Add(new HttpCookie("TheSignature",Request.Form["TheData"]));
    Response.Redirect(Request.Cookies["Page"].Value);
}

无论如何,只是没有回应。 我是傻还是有什么限制?

【问题讨论】:

  • 显而易见的第一个问题是 iframe 和主页是否在同一个域上?
  • 是的,我没那么傻。他们在同一个域中
  • 已解决。打开 iframe 时不要使用完整的 url,只使用实际名称,否则它认为你在同一个域上。很抱歉整个问题。
  • 可悲的是,有些人太傻了,在看其他东西之前总是值得检查一下。因为这个问题在给出答案时似乎一点也不傻。我会把它作为答案(自我回答的问题很好),因为我认为它有一些价值。

标签: c# asp.net session iframe cookies


【解决方案1】:

当创建一个新的 iFrame 时,请注意将完整的 url 地址写为源地址将使它像不在同一个域中一样处理。 作为解决方案,只写源页面的名称。

有关会话存储位置的更多信息,请参阅: http://msdn.microsoft.com/en-us/library/ms178581.aspx

【讨论】:

    猜你喜欢
    • 2010-12-30
    • 2012-02-17
    • 2022-01-12
    • 2020-05-10
    • 2021-05-29
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 2013-08-11
    相关资源
    最近更新 更多