同じIISインスタンスで複数のWebサイトをホストしているので、IISの設定でHTTP応答ヘッダー 'X-Frame-Options:DENY'を定義して、クライアント(およびクライアント) 。IISレスポンスヘッダーをオーバーライド
私は現在、電子商取引のWebサイトでWebフォームを使用しています。特定のURL(支払いプロバイダのコールバック)で「X-Frame-Options」レスポンスヘッダーを削除する必要があります。
HTTPモジュール(下のコードを参照)を書いて、それを私のeコマースWebサイトの 'web.config'に登録しましたが、コードは機能しますが、IISは私の実行後に応答ヘッダーを追加するようですHttpModule。
public class XFrameOptionsControl : IHttpModule
{
public void Dispose()
{
}
public void Init(HttpApplication application)
{
application.PreSendRequestHeaders += new EventHandler(PreSendRequestHeaders);
}
private void PreSendRequestHeaders(object sender, EventArgs e)
{
HttpApplication application = sender as HttpApplication;
HttpContext context = application.Context;
string callbackDocumentName = "callback.html";
if (callbackDocumentName != null)
{
if (!context.Request.RawUrl.ToLower().Contains(callbackDocumentName.ToLower()))
{
context.Response.Headers.Remove("X-Frame-Options");
}
}
}
}
通常、「callbackDocumentNameは」「web.configファイル」から取得しますが、私は、例えば、それを単純化しましたさ。私は、Visual Studioと 'context.Response.Headers' は次のヘッダーが含まれていますが、ない 'X-フレーム・オプション' とデバッグを試してみました:
- CacheControlを
- のContent-Type
- サーバー
- X-AspNet-Version
ありがとうございます!
が助けになるかもしれませんしてみてください、あなたのアプリケーションに送信される前であっても、あなたがそれをやった:https://blogs.msdn.microsoft.com/varunm/2013/ 04/23/remove-unwanted-http-response-headers/ – ediblecode
あなたの早い返信をありがとう!私はすでにStackoverflowに投稿する前にこの記事を検討しました。悲しいことに、 'X-Frame-Options'には 'ALLOWALL'がないので、ヘッダーから削除する必要があります。変更するだけではありません。 –