MVC -表单认证,IFrame cookie,动态无cookie模式

本文关键字:cookie 动态 模式 IFrame 认证 MVC 表单 | 更新日期: 2023-09-27 18:10:24

我有一个webapplication,我的一些客户想在IFrame中使用它。但是,因为在Internet Explorer中保存IFrame中的cookie不支持我的表单身份验证。

我可以通过添加 来轻松解决这个问题

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

然而,由于我的网站显示其当前的url(任何网页一样),当它运行在一个iframe外,这导致一些非常丑陋的url。

所以我的想法是。有没有办法解决IFrame cookie问题与IE(和Safari)不添加P3P报头。

如果这是不可能的,那么有没有任何方法从代码中改变无cookie模式?我想有一个IFrame路由,然后启用无cookie模式。比如http://www.mypage.com/IFrame/Account/Login。因为这个路由只在IFrame中使用,所以URL不重要。

谁有好的解决方案?

MVC -表单认证,IFrame cookie,动态无cookie模式

这篇文章解决了我的问题: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'"");
    }

我希望这对你有帮助!再见。

解决问题的正确方法:

Cookie被阻止/不保存在Internet Explorer的IFRAME中

根据回应"标签不仅仅是一堆比特,它们具有现实世界的含义,使用它们会给你现实世界的责任!"标签使用不当可能导致法律后果。