SqlMembershipProvider无法仅在Internet Explorer中使用框架或iframe登录

Ero*_*ocM 2 c# sqlmembershipprovider asp.net-mvc-3

我正在使用SqlMembershipProvider与asp.net,它工作正常,直到我尝试使用iframe或帧.

当我没有他们登录时,我没有任何问题,但如果我从我们客户的网站包装我们的网站,并尝试登录,它只是闪烁并返回到原始网站,所有字段都已清除.

我可以在IE 8和9上使用我们的网站轻松复制这个,但我对firefox或chrome没有任何问题.

还有另一种方法可以实现这个目标或绕过它吗?

======编辑======

我们的客户正在从他们的网站上调用我们的"门户网站",并希望将我们的门户网站无缝集成到其中,就好像它是他们网站的一部分一样.

我们认为我们可以通过iframe将我们的门户网站从他们的网站包装来实现这一目标,但我对使用登录工作没有任何好运,从我所看到的是一个跨域cookie问题(?).

希望这有助于澄清一些事情......

Saw*_*wan 7

您可以使用FormsAuthentication.SetAuthCookie,并以加密方式传递URL中的初始凭据,

这个问题将有力地帮助你在互联网资源管理器,其他经纪人,好吧,

Cookie已阻止/未保存在Internet Explorer的IFRAME中

我已经测试过Chrome,Firefox,Opera(会在第一时间发出警告),它运行正常,没问题,但是对于IE,你需要看到我提供的问题.


vto*_*ola 6

除非您指定P3P标头,否则Internet Explorer不会通过IFRAMES发送cookie.

最简单的方法是在Web.config中指示自定义HTTP标头:

  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="P3P" value='CP="CAO PSA OUR"'/>
Run Code Online (Sandbox Code Playgroud)

这样你就不必乱用你的代码.

这个HTTP头称为Compact P3P,它应该可以解决这个问题,因为我遇到了与之前相同的情况.

我担心Safari浏览器可能有点棘手,因为Safari不会发送cookie,除非用户与IFRAME内容交互,如下所示:Iframe,跨域cookie,p3p策略和带有错误的safari:未提供所需的防伪标记或无效.你的情况可能不是什么大问题.

干杯.