MVC - 表单身份验证,IFrame cookie,动态无Cookie模式

时间:2011-10-05 08:08:54

标签: c# model-view-controller

我有一个WebApplicatoon,我的一些客户希望在IFrame中使用它。 但是,由于不支持在Internet Explorer的IFrame中保存cookie,因此我的Forms身份验证不支持。

我可以通过添加

轻松解决这个问题

<forms loginUrl="~/Account/LogOn" timeout="2880" cookieless="UseUri" />

然而,由于我的网站在iframe外部运行时会显示其当前网址(与任何网页一样),因此会产生一些非常难看的网址。

所以我的想法是。 有没有办法解决IE(和Safari)的IFrame cookie问题,而无需添加P3P标头。

如果无法做到这一点,那么有没有办法从代码中更改无Cookie模式? 我想有一个IFrame路由然后启用cookieless模式。 像http://www.mypage.com/IFrame/Account/Login这样的东西。 由于此路线仅在IFrame中使用,因此URL无关紧要。

有没有人有这方面的好解决方案?

2 个答案:

答案 0 :(得分:2)

这篇文章解决了我的问题:http://www.quickstepit.net/internet-explorer-iframe-cookies-mvc3/

我只需要在ApplicationRequest上添加代码,而无需在web.config中更改“forms”标记。

  <forms loginUrl="~/Home/Index" timeout="2880" />

protected void Application_BeginRequest(object sender, EventArgs e)
    {
        // Source: http://www.quickstepit.net/internet-explorer-iframe-cookies-mvc3/
        HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");
    }

我希望对你有所帮助! 见你。

答案 1 :(得分:0)

请参阅此帖,了解解决问题的正确方法:

Cookie blocked/not saved in IFRAME in Internet Explorer

根据回应“标签不仅仅是一堆,它们具有现实世界的意义,它们的使用赋予你现实世界的责任!”。标签使用不当可能会产生法律后果。