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不重要。
谁有好的解决方案?
这篇文章解决了我的问题: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中
根据回应"标签不仅仅是一堆比特,它们具有现实世界的含义,使用它们会给你现实世界的责任!"标签使用不当可能导致法律后果。