この問題を解決するために数日 (私にとっては本当に多くの時間) を費やしましたが、最終的にいくつかの回避策を見つけました。
正直なところ、私は x-frame-problem とその属性 (Deny、SameOrigin、allowsAll、allowsfor など) に関する多くの記事を読みましたが、そのような問題に対する信頼できる解決策は見つかりませんでした。もちろん、クリックジャッキングとクロスサイトの問題は理解していますが、リクエストからヘッダーの値を削除するため、私の提案が完全に適切で安全ではないことは承知しています。
Global.asax.cs の内容は次のとおりです。
namespace xxxx
{
public class MvcApplication : HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
private void Application_EndRequest(object sender, EventArgs e)
{
Response.Headers["X-FRAME-OPTIONS"] = string.Empty;
}
}
}
要約すると、いくつかのことを認めなければなりません。
Chrome ブラウザーは、AllowFor 属性も AllowAll もサポートしていません。Deny と SameOrigin 属性のみを理解しますが、Internet Explorer は AllowAll 属性を扱います。FireFox は Chrome と同様に動作します。
また、IIS または Windows Azure ホストは、SameOrigin 属性を使用して、このヘッダーを応答に自動的に追加します。(Somme.com ホストと同じ)。
私のような場合 (および私が気づいた他の人 http://www.windows-azure.net/x-frame-options-header-is-not-ching-in-azure-web-role/ ) 唯一の解決策x-frame-options ヘッダーから辞任することです。このような問題を克服するには、Web ブラウザーが少なくとも AllowFor 属性をサポートする必要があるように思えますが。
よろしくお願いします!
グジェゴシュ