我有一个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无关紧要。
有没有人有这方面的好解决方案?
答案 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
根据回应“标签不仅仅是一堆,它们具有现实世界的意义,它们的使用赋予你现实世界的责任!”。标签使用不当可能会产生法律后果。