Asp.net mvc 2 拒绝显示';https://mytestwebsite.com/?wa=wsignoutcleanup1.0' 在帧中,因为它设置为';X-Frame-Options';至';否认';

Asp.net mvc 2 拒绝显示';https://mytestwebsite.com/?wa=wsignoutcleanup1.0' 在帧中,因为它设置为';X-Frame-Options';至';否认';,asp.net-mvc-2,adfs2.0,x-frame-options,Asp.net Mvc 2,Adfs2.0,X Frame Options,我使用ADFS 2.0作为应用程序的身份验证过程,该应用程序是使用asp.net mvc2和SQL Server 2012开发的。为了解决这个问题:Clickjacking(又名跨站点框架或XSF),我们在web.config文件中设置了X-Frame-Options,其值为DENY 复制步骤: 1.使用Chrome浏览器使用有效凭据登录到应用程序。 2.系统向我显示应用程序登录页。 3.单击F12打开开发人员工具选项。 4.现在单击注销选项并导航到控制台窗口。 5.系统显示了ADFS注销页面,

我使用ADFS 2.0作为应用程序的身份验证过程,该应用程序是使用asp.net mvc2和SQL Server 2012开发的。为了解决这个问题:Clickjacking(又名跨站点框架或XSF),我们在web.config文件中设置了X-Frame-Options,其值为DENY

复制步骤: 1.使用Chrome浏览器使用有效凭据登录到应用程序。 2.系统向我显示应用程序登录页。 3.单击F12打开开发人员工具选项。 4.现在单击注销选项并导航到控制台窗口。 5.系统显示了ADFS注销页面,但控制台窗口中仍出现错误,如下所述:

拒绝在帧中显示“”,因为它将“X-frame-Options”设置为“DENY”

在检查ADFS Sognout页面的ViewSource时,我看到了以下内容:

<iframe class="Test" src="https://mytestwebsite.com/?wa=wsignoutcleanup1.0">
</iframe>


有人能给我建议解决上述问题的最佳方法吗?

一个选择是什么都不做。注销清理的重要部分是删除mytestwebsite.com的身份验证cookie,该cookie仍然可以完成,因为http头仍然被处理,即使生成的iframe内容没有显示

仅当满足以下条件时,才允许渲染iframe内容:

  • 您的web应用程序将进一步执行下游注销清理。即,它包含自己的iframe标记以签出其他应用程序,或
  • STS使用标记而不是iFrame进行注销清理,并且您希望WIF返回的绿色勾号图像出现,或者
  • 你真的,真的不希望浏览器控制台中出现无害的错误消息
如果确实有必要,可以通过编程方式将x-frame-options-DENY添加到除WS-federation注销清理之外的所有响应中

对于ASP.NET MVC应用程序,您可以使用(在Global.asax.cs中):


你有什么解决办法吗?我也有同样的问题。你找到解决办法了吗?
    public override void Init()
    {
        base.Init();
        FederatedAuthentication.WSFederationAuthenticationModule.SigningOut += this.WSFederationAuthenticationModuleOnSigningOut;
    }

    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        Response.Headers["X-Frame-Options"] = "DENY";
    }

    private void WSFederationAuthenticationModuleOnSigningOut(object sender, SigningOutEventArgs args)
    {
        if (args.IsIPInitiated)
        {
            Response.Headers.Remove("X-Frame-Options");
        }
    }