MVC 5 prevents access to content via IframeDisplay MVC page in iframe in another siteServer Cannot Append Header After HTTP headers have been sent Exception at @Html.AntiForgeryX-Frame-Options not working IIS web.configAfter update to MVC 5, iframe no longer worksIIS is adding default 'X-Frame-Options:SAMEORIGIN' even then I added new HTTP response header in default website level as'X-Frame-Options:ALLOW'.Can't display content in a frame“this content cannot be viewed in a frame” error the first time I load the pageIIS defaults X-Frame-Options Deny every time I publish my websiteCompile Views in ASP.NET MVCHow do you handle multiple submit buttons in ASP.NET MVC Framework?In MVC, how do I return a string result?ASP.NET MVC - Set custom IIdentity or IPrincipalFile Upload ASP.NET MVC 3.0After update to MVC 5, iframe no longer worksSameOrigin Policy interfering with Google DocsAllow frame from different domain with MVC5Downgrade MVC 5 to mvc 4Cross domain communication is not happening after adding Xframeoptions : Sameorigin
What makes accurate emulation of old systems a difficult task?
Multiple options vs single option UI
Philosophical question on logistic regression: why isn't the optimal threshold value trained?
What was Apollo 13's "Little Jolt" after MECO?
Why did C use the -> operator instead of reusing the . operator?
Creating a chemical industry from a medieval tech level without petroleum
Older movie/show about humans on derelict alien warship which refuels by passing through a star
Why do games have consumables?
How long after the last departure shall the airport stay open for an emergency return?
A strange hotel
What is the unit of time_lock_delta in LND?
How important is it that $TERM is correct?
Work requires me to come in early to start computer but wont let me clock in to get paid for it
Check if a string is entirely made of the same substring
Prove that the countable union of countable sets is also countable
How do I produce this Greek letter koppa: Ϟ in pdfLaTeX?
What *exactly* is electrical current, voltage, and resistance?
All ASCII characters with a given bit count
"Whatever a Russian does, they end up making the Kalashnikov gun"? Are there any similar proverbs in English?
"My boss was furious with me and I have been fired" vs. "My boss was furious with me and I was fired"
Can a stored procedure reference the database in which it is stored?
What does MLD stand for?
How much cash can I safely carry into the USA and avoid civil forfeiture?
How can I practically buy stocks?
MVC 5 prevents access to content via Iframe
Display MVC page in iframe in another siteServer Cannot Append Header After HTTP headers have been sent Exception at @Html.AntiForgeryX-Frame-Options not working IIS web.configAfter update to MVC 5, iframe no longer worksIIS is adding default 'X-Frame-Options:SAMEORIGIN' even then I added new HTTP response header in default website level as'X-Frame-Options:ALLOW'.Can't display content in a frame“this content cannot be viewed in a frame” error the first time I load the pageIIS defaults X-Frame-Options Deny every time I publish my websiteCompile Views in ASP.NET MVCHow do you handle multiple submit buttons in ASP.NET MVC Framework?In MVC, how do I return a string result?ASP.NET MVC - Set custom IIdentity or IPrincipalFile Upload ASP.NET MVC 3.0After update to MVC 5, iframe no longer worksSameOrigin Policy interfering with Google DocsAllow frame from different domain with MVC5Downgrade MVC 5 to mvc 4Cross domain communication is not happening after adding Xframeoptions : Sameorigin
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
Ever since the upgrade from MVC4 to MVC5, I have noticed an extra server header added to my web pages:
X-Frame-Options: SAMEORIGIN
I understand security benefits of adding this tag, but one of the pages is meant to be included inside an iframe from other projects (on other domains), this extra header is preventing this.
I have verified it is not the hosting IIS7 server that is adding the header, and when I downgraded back to MVC4 - the header is gone.
Does anyone know how to remove this default from MVC5?
asp.net-mvc
add a comment |
Ever since the upgrade from MVC4 to MVC5, I have noticed an extra server header added to my web pages:
X-Frame-Options: SAMEORIGIN
I understand security benefits of adding this tag, but one of the pages is meant to be included inside an iframe from other projects (on other domains), this extra header is preventing this.
I have verified it is not the hosting IIS7 server that is adding the header, and when I downgraded back to MVC4 - the header is gone.
Does anyone know how to remove this default from MVC5?
asp.net-mvc
This same question was just asked, so if you don't get an answer here, keep an eye on that one.
– Joe Enos
Nov 27 '13 at 22:31
add a comment |
Ever since the upgrade from MVC4 to MVC5, I have noticed an extra server header added to my web pages:
X-Frame-Options: SAMEORIGIN
I understand security benefits of adding this tag, but one of the pages is meant to be included inside an iframe from other projects (on other domains), this extra header is preventing this.
I have verified it is not the hosting IIS7 server that is adding the header, and when I downgraded back to MVC4 - the header is gone.
Does anyone know how to remove this default from MVC5?
asp.net-mvc
Ever since the upgrade from MVC4 to MVC5, I have noticed an extra server header added to my web pages:
X-Frame-Options: SAMEORIGIN
I understand security benefits of adding this tag, but one of the pages is meant to be included inside an iframe from other projects (on other domains), this extra header is preventing this.
I have verified it is not the hosting IIS7 server that is adding the header, and when I downgraded back to MVC4 - the header is gone.
Does anyone know how to remove this default from MVC5?
asp.net-mvc
asp.net-mvc
asked Nov 27 '13 at 22:29
Leszek R.Leszek R.
338135
338135
This same question was just asked, so if you don't get an answer here, keep an eye on that one.
– Joe Enos
Nov 27 '13 at 22:31
add a comment |
This same question was just asked, so if you don't get an answer here, keep an eye on that one.
– Joe Enos
Nov 27 '13 at 22:31
This same question was just asked, so if you don't get an answer here, keep an eye on that one.
– Joe Enos
Nov 27 '13 at 22:31
This same question was just asked, so if you don't get an answer here, keep an eye on that one.
– Joe Enos
Nov 27 '13 at 22:31
add a comment |
5 Answers
5
active
oldest
votes
MVC5 automatically adds the HTTP header X-Frame-Options with SAMEORIGIN
. This prevents your site from being loaded into an iframe
.
But we can turn this off in Application_Start
in the Global.asax.cs
.
Example
protected void Application_Start()
AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
Update
I have written a post about this MVC5 prevents your website being loaded in an IFRAME
1
What if I only want to allow certain pages to be iframe loaded? Previously I had a custom attributeAllowAnyOriginAttribute : ActionFilterAttribute
. Can I change the configuration per request, or isApplication_PreSendRequestHeaders
still preferred in this scenario (as per stackoverflow.com/a/20254341/65611)?
– Joel
Jul 21 '14 at 14:19
1
Thanks, this helper @Html.AntiForgeryToken() is what causes the header to be added. In AntiForgeryWorker.cs:if (!this._config.SuppressXFrameOptionsHeader) httpContext.Response.AddHeader("X-Frame-Options", "SAMEORIGIN");
– Jared Kells
Sep 28 '14 at 2:56
You could just add this to yourweb.config
<system.webServer> ... <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="SAMEORIGIN" /> </customHeaders> </httpProtocol> ... </system.webServer>
– harry180
May 8 '15 at 11:07
3
This answer requires the System.Web.Helpers namespace in your global.asax file.
– Jim Yarbro
Sep 20 '15 at 12:32
Http Headers issues: stackoverflow.com/questions/34270192/…
– Kiquenet
Mar 18 at 14:23
add a comment |
Try something like this in Global.asax
:
protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
HttpContext.Current.Response.Headers.Remove("X-Frame-Options");
EDIT:
Look at answer of Colin Bacon. It is more correct than mine.
In short - don't remove this header if you don't want to run your site in IFRAME because it will open forgery vulnerability. But if you still want to remove it - use AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
in Application_Start
, it is more cleaner way for doing this.
It feels a bit like a hack, right before the page is sent out, the tag is stripped, but it works, so I am accepting your answer. - It would be nice to know why the tag is being added though.
– Leszek R.
Nov 27 '13 at 22:47
2
We can actually suppress this in app_start withAntiForgeryConfig.SuppressXFrameOptionsHeader = true;
– Colin Bacon
Nov 28 '13 at 9:30
Nice. Easy fix for a not so good code with 300 form tags with antiforgeries on each one.
– Dmitri Trofimov
Apr 27 '16 at 12:23
Isn't this the better answer if you only want to allow some pages to be accessed via an IFrame?
– StuartQ
Jul 19 '16 at 9:30
add a comment |
Here is a replacement Extension method for the HtmlHelper
class. It will first clear all X-Frame-Options
headers and then add back a single X-Frame-Options
header normally added by the built-in AntiForgeryToken
method.
This technique respects the SuppressXFrameOptionsHeader
setting, but has the downside of removing all previously added X-Frame-Options
headers, even those with values other than SAMEORIGIN
.
public static MvcHtmlString AntiForgeryTokenSingleHeader(this HtmlHelper html)
string token = AntiForgery.GetHtml().ToString();
HttpResponseBase httpResponse = html.ViewContext.HttpContext.Response;
httpResponse.Headers.Remove("X-Frame-Options");
if (!AntiForgeryConfig.SuppressXFrameOptionsHeader)
httpResponse.AddHeader("X-Frame-Options", "SAMEORIGIN");
return new MvcHtmlString(token);
add a comment |
If you want a little more flexibility, here's an ActionAttribute that adds/removes headers based on a whitelist. If the referrer isn't in the whitelist, then the SAMEORIGIN header is left in place. I was going to paste the code, but SO complains about the length.
https://long2know.com/2016/06/asp-net-anti-forgery-xframe-options/
add a comment |
Personally, I don't think it's a good idea to disable the X-Frame-Options across the whole site.I've created an ASP.NET MVC filter which removes this header and I simply apply this filter to the portions of the site that are used in iFrames e.g. widgets.
public class AllowDifferentOrigin : ActionFilterAttribute, IActionFilter
public override void OnResultExecuted(ResultExecutedContext filterContext)
filterContext.HttpContext.Response.Headers.Remove("X-Frame-Options");
base.OnResultExecuted(filterContext);
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f20254303%2fmvc-5-prevents-access-to-content-via-iframe%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
5 Answers
5
active
oldest
votes
5 Answers
5
active
oldest
votes
active
oldest
votes
active
oldest
votes
MVC5 automatically adds the HTTP header X-Frame-Options with SAMEORIGIN
. This prevents your site from being loaded into an iframe
.
But we can turn this off in Application_Start
in the Global.asax.cs
.
Example
protected void Application_Start()
AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
Update
I have written a post about this MVC5 prevents your website being loaded in an IFRAME
1
What if I only want to allow certain pages to be iframe loaded? Previously I had a custom attributeAllowAnyOriginAttribute : ActionFilterAttribute
. Can I change the configuration per request, or isApplication_PreSendRequestHeaders
still preferred in this scenario (as per stackoverflow.com/a/20254341/65611)?
– Joel
Jul 21 '14 at 14:19
1
Thanks, this helper @Html.AntiForgeryToken() is what causes the header to be added. In AntiForgeryWorker.cs:if (!this._config.SuppressXFrameOptionsHeader) httpContext.Response.AddHeader("X-Frame-Options", "SAMEORIGIN");
– Jared Kells
Sep 28 '14 at 2:56
You could just add this to yourweb.config
<system.webServer> ... <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="SAMEORIGIN" /> </customHeaders> </httpProtocol> ... </system.webServer>
– harry180
May 8 '15 at 11:07
3
This answer requires the System.Web.Helpers namespace in your global.asax file.
– Jim Yarbro
Sep 20 '15 at 12:32
Http Headers issues: stackoverflow.com/questions/34270192/…
– Kiquenet
Mar 18 at 14:23
add a comment |
MVC5 automatically adds the HTTP header X-Frame-Options with SAMEORIGIN
. This prevents your site from being loaded into an iframe
.
But we can turn this off in Application_Start
in the Global.asax.cs
.
Example
protected void Application_Start()
AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
Update
I have written a post about this MVC5 prevents your website being loaded in an IFRAME
1
What if I only want to allow certain pages to be iframe loaded? Previously I had a custom attributeAllowAnyOriginAttribute : ActionFilterAttribute
. Can I change the configuration per request, or isApplication_PreSendRequestHeaders
still preferred in this scenario (as per stackoverflow.com/a/20254341/65611)?
– Joel
Jul 21 '14 at 14:19
1
Thanks, this helper @Html.AntiForgeryToken() is what causes the header to be added. In AntiForgeryWorker.cs:if (!this._config.SuppressXFrameOptionsHeader) httpContext.Response.AddHeader("X-Frame-Options", "SAMEORIGIN");
– Jared Kells
Sep 28 '14 at 2:56
You could just add this to yourweb.config
<system.webServer> ... <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="SAMEORIGIN" /> </customHeaders> </httpProtocol> ... </system.webServer>
– harry180
May 8 '15 at 11:07
3
This answer requires the System.Web.Helpers namespace in your global.asax file.
– Jim Yarbro
Sep 20 '15 at 12:32
Http Headers issues: stackoverflow.com/questions/34270192/…
– Kiquenet
Mar 18 at 14:23
add a comment |
MVC5 automatically adds the HTTP header X-Frame-Options with SAMEORIGIN
. This prevents your site from being loaded into an iframe
.
But we can turn this off in Application_Start
in the Global.asax.cs
.
Example
protected void Application_Start()
AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
Update
I have written a post about this MVC5 prevents your website being loaded in an IFRAME
MVC5 automatically adds the HTTP header X-Frame-Options with SAMEORIGIN
. This prevents your site from being loaded into an iframe
.
But we can turn this off in Application_Start
in the Global.asax.cs
.
Example
protected void Application_Start()
AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
Update
I have written a post about this MVC5 prevents your website being loaded in an IFRAME
edited Dec 16 '13 at 16:30
answered Nov 28 '13 at 9:28
Colin BaconColin Bacon
13k63959
13k63959
1
What if I only want to allow certain pages to be iframe loaded? Previously I had a custom attributeAllowAnyOriginAttribute : ActionFilterAttribute
. Can I change the configuration per request, or isApplication_PreSendRequestHeaders
still preferred in this scenario (as per stackoverflow.com/a/20254341/65611)?
– Joel
Jul 21 '14 at 14:19
1
Thanks, this helper @Html.AntiForgeryToken() is what causes the header to be added. In AntiForgeryWorker.cs:if (!this._config.SuppressXFrameOptionsHeader) httpContext.Response.AddHeader("X-Frame-Options", "SAMEORIGIN");
– Jared Kells
Sep 28 '14 at 2:56
You could just add this to yourweb.config
<system.webServer> ... <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="SAMEORIGIN" /> </customHeaders> </httpProtocol> ... </system.webServer>
– harry180
May 8 '15 at 11:07
3
This answer requires the System.Web.Helpers namespace in your global.asax file.
– Jim Yarbro
Sep 20 '15 at 12:32
Http Headers issues: stackoverflow.com/questions/34270192/…
– Kiquenet
Mar 18 at 14:23
add a comment |
1
What if I only want to allow certain pages to be iframe loaded? Previously I had a custom attributeAllowAnyOriginAttribute : ActionFilterAttribute
. Can I change the configuration per request, or isApplication_PreSendRequestHeaders
still preferred in this scenario (as per stackoverflow.com/a/20254341/65611)?
– Joel
Jul 21 '14 at 14:19
1
Thanks, this helper @Html.AntiForgeryToken() is what causes the header to be added. In AntiForgeryWorker.cs:if (!this._config.SuppressXFrameOptionsHeader) httpContext.Response.AddHeader("X-Frame-Options", "SAMEORIGIN");
– Jared Kells
Sep 28 '14 at 2:56
You could just add this to yourweb.config
<system.webServer> ... <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="SAMEORIGIN" /> </customHeaders> </httpProtocol> ... </system.webServer>
– harry180
May 8 '15 at 11:07
3
This answer requires the System.Web.Helpers namespace in your global.asax file.
– Jim Yarbro
Sep 20 '15 at 12:32
Http Headers issues: stackoverflow.com/questions/34270192/…
– Kiquenet
Mar 18 at 14:23
1
1
What if I only want to allow certain pages to be iframe loaded? Previously I had a custom attribute
AllowAnyOriginAttribute : ActionFilterAttribute
. Can I change the configuration per request, or is Application_PreSendRequestHeaders
still preferred in this scenario (as per stackoverflow.com/a/20254341/65611)?– Joel
Jul 21 '14 at 14:19
What if I only want to allow certain pages to be iframe loaded? Previously I had a custom attribute
AllowAnyOriginAttribute : ActionFilterAttribute
. Can I change the configuration per request, or is Application_PreSendRequestHeaders
still preferred in this scenario (as per stackoverflow.com/a/20254341/65611)?– Joel
Jul 21 '14 at 14:19
1
1
Thanks, this helper @Html.AntiForgeryToken() is what causes the header to be added. In AntiForgeryWorker.cs:
if (!this._config.SuppressXFrameOptionsHeader) httpContext.Response.AddHeader("X-Frame-Options", "SAMEORIGIN");
– Jared Kells
Sep 28 '14 at 2:56
Thanks, this helper @Html.AntiForgeryToken() is what causes the header to be added. In AntiForgeryWorker.cs:
if (!this._config.SuppressXFrameOptionsHeader) httpContext.Response.AddHeader("X-Frame-Options", "SAMEORIGIN");
– Jared Kells
Sep 28 '14 at 2:56
You could just add this to your
web.config
<system.webServer> ... <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="SAMEORIGIN" /> </customHeaders> </httpProtocol> ... </system.webServer>
– harry180
May 8 '15 at 11:07
You could just add this to your
web.config
<system.webServer> ... <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="SAMEORIGIN" /> </customHeaders> </httpProtocol> ... </system.webServer>
– harry180
May 8 '15 at 11:07
3
3
This answer requires the System.Web.Helpers namespace in your global.asax file.
– Jim Yarbro
Sep 20 '15 at 12:32
This answer requires the System.Web.Helpers namespace in your global.asax file.
– Jim Yarbro
Sep 20 '15 at 12:32
Http Headers issues: stackoverflow.com/questions/34270192/…
– Kiquenet
Mar 18 at 14:23
Http Headers issues: stackoverflow.com/questions/34270192/…
– Kiquenet
Mar 18 at 14:23
add a comment |
Try something like this in Global.asax
:
protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
HttpContext.Current.Response.Headers.Remove("X-Frame-Options");
EDIT:
Look at answer of Colin Bacon. It is more correct than mine.
In short - don't remove this header if you don't want to run your site in IFRAME because it will open forgery vulnerability. But if you still want to remove it - use AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
in Application_Start
, it is more cleaner way for doing this.
It feels a bit like a hack, right before the page is sent out, the tag is stripped, but it works, so I am accepting your answer. - It would be nice to know why the tag is being added though.
– Leszek R.
Nov 27 '13 at 22:47
2
We can actually suppress this in app_start withAntiForgeryConfig.SuppressXFrameOptionsHeader = true;
– Colin Bacon
Nov 28 '13 at 9:30
Nice. Easy fix for a not so good code with 300 form tags with antiforgeries on each one.
– Dmitri Trofimov
Apr 27 '16 at 12:23
Isn't this the better answer if you only want to allow some pages to be accessed via an IFrame?
– StuartQ
Jul 19 '16 at 9:30
add a comment |
Try something like this in Global.asax
:
protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
HttpContext.Current.Response.Headers.Remove("X-Frame-Options");
EDIT:
Look at answer of Colin Bacon. It is more correct than mine.
In short - don't remove this header if you don't want to run your site in IFRAME because it will open forgery vulnerability. But if you still want to remove it - use AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
in Application_Start
, it is more cleaner way for doing this.
It feels a bit like a hack, right before the page is sent out, the tag is stripped, but it works, so I am accepting your answer. - It would be nice to know why the tag is being added though.
– Leszek R.
Nov 27 '13 at 22:47
2
We can actually suppress this in app_start withAntiForgeryConfig.SuppressXFrameOptionsHeader = true;
– Colin Bacon
Nov 28 '13 at 9:30
Nice. Easy fix for a not so good code with 300 form tags with antiforgeries on each one.
– Dmitri Trofimov
Apr 27 '16 at 12:23
Isn't this the better answer if you only want to allow some pages to be accessed via an IFrame?
– StuartQ
Jul 19 '16 at 9:30
add a comment |
Try something like this in Global.asax
:
protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
HttpContext.Current.Response.Headers.Remove("X-Frame-Options");
EDIT:
Look at answer of Colin Bacon. It is more correct than mine.
In short - don't remove this header if you don't want to run your site in IFRAME because it will open forgery vulnerability. But if you still want to remove it - use AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
in Application_Start
, it is more cleaner way for doing this.
Try something like this in Global.asax
:
protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
HttpContext.Current.Response.Headers.Remove("X-Frame-Options");
EDIT:
Look at answer of Colin Bacon. It is more correct than mine.
In short - don't remove this header if you don't want to run your site in IFRAME because it will open forgery vulnerability. But if you still want to remove it - use AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
in Application_Start
, it is more cleaner way for doing this.
edited May 23 '17 at 12:26
Community♦
11
11
answered Nov 27 '13 at 22:31
Oleksii AzaOleksii Aza
4,7092132
4,7092132
It feels a bit like a hack, right before the page is sent out, the tag is stripped, but it works, so I am accepting your answer. - It would be nice to know why the tag is being added though.
– Leszek R.
Nov 27 '13 at 22:47
2
We can actually suppress this in app_start withAntiForgeryConfig.SuppressXFrameOptionsHeader = true;
– Colin Bacon
Nov 28 '13 at 9:30
Nice. Easy fix for a not so good code with 300 form tags with antiforgeries on each one.
– Dmitri Trofimov
Apr 27 '16 at 12:23
Isn't this the better answer if you only want to allow some pages to be accessed via an IFrame?
– StuartQ
Jul 19 '16 at 9:30
add a comment |
It feels a bit like a hack, right before the page is sent out, the tag is stripped, but it works, so I am accepting your answer. - It would be nice to know why the tag is being added though.
– Leszek R.
Nov 27 '13 at 22:47
2
We can actually suppress this in app_start withAntiForgeryConfig.SuppressXFrameOptionsHeader = true;
– Colin Bacon
Nov 28 '13 at 9:30
Nice. Easy fix for a not so good code with 300 form tags with antiforgeries on each one.
– Dmitri Trofimov
Apr 27 '16 at 12:23
Isn't this the better answer if you only want to allow some pages to be accessed via an IFrame?
– StuartQ
Jul 19 '16 at 9:30
It feels a bit like a hack, right before the page is sent out, the tag is stripped, but it works, so I am accepting your answer. - It would be nice to know why the tag is being added though.
– Leszek R.
Nov 27 '13 at 22:47
It feels a bit like a hack, right before the page is sent out, the tag is stripped, but it works, so I am accepting your answer. - It would be nice to know why the tag is being added though.
– Leszek R.
Nov 27 '13 at 22:47
2
2
We can actually suppress this in app_start with
AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
– Colin Bacon
Nov 28 '13 at 9:30
We can actually suppress this in app_start with
AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
– Colin Bacon
Nov 28 '13 at 9:30
Nice. Easy fix for a not so good code with 300 form tags with antiforgeries on each one.
– Dmitri Trofimov
Apr 27 '16 at 12:23
Nice. Easy fix for a not so good code with 300 form tags with antiforgeries on each one.
– Dmitri Trofimov
Apr 27 '16 at 12:23
Isn't this the better answer if you only want to allow some pages to be accessed via an IFrame?
– StuartQ
Jul 19 '16 at 9:30
Isn't this the better answer if you only want to allow some pages to be accessed via an IFrame?
– StuartQ
Jul 19 '16 at 9:30
add a comment |
Here is a replacement Extension method for the HtmlHelper
class. It will first clear all X-Frame-Options
headers and then add back a single X-Frame-Options
header normally added by the built-in AntiForgeryToken
method.
This technique respects the SuppressXFrameOptionsHeader
setting, but has the downside of removing all previously added X-Frame-Options
headers, even those with values other than SAMEORIGIN
.
public static MvcHtmlString AntiForgeryTokenSingleHeader(this HtmlHelper html)
string token = AntiForgery.GetHtml().ToString();
HttpResponseBase httpResponse = html.ViewContext.HttpContext.Response;
httpResponse.Headers.Remove("X-Frame-Options");
if (!AntiForgeryConfig.SuppressXFrameOptionsHeader)
httpResponse.AddHeader("X-Frame-Options", "SAMEORIGIN");
return new MvcHtmlString(token);
add a comment |
Here is a replacement Extension method for the HtmlHelper
class. It will first clear all X-Frame-Options
headers and then add back a single X-Frame-Options
header normally added by the built-in AntiForgeryToken
method.
This technique respects the SuppressXFrameOptionsHeader
setting, but has the downside of removing all previously added X-Frame-Options
headers, even those with values other than SAMEORIGIN
.
public static MvcHtmlString AntiForgeryTokenSingleHeader(this HtmlHelper html)
string token = AntiForgery.GetHtml().ToString();
HttpResponseBase httpResponse = html.ViewContext.HttpContext.Response;
httpResponse.Headers.Remove("X-Frame-Options");
if (!AntiForgeryConfig.SuppressXFrameOptionsHeader)
httpResponse.AddHeader("X-Frame-Options", "SAMEORIGIN");
return new MvcHtmlString(token);
add a comment |
Here is a replacement Extension method for the HtmlHelper
class. It will first clear all X-Frame-Options
headers and then add back a single X-Frame-Options
header normally added by the built-in AntiForgeryToken
method.
This technique respects the SuppressXFrameOptionsHeader
setting, but has the downside of removing all previously added X-Frame-Options
headers, even those with values other than SAMEORIGIN
.
public static MvcHtmlString AntiForgeryTokenSingleHeader(this HtmlHelper html)
string token = AntiForgery.GetHtml().ToString();
HttpResponseBase httpResponse = html.ViewContext.HttpContext.Response;
httpResponse.Headers.Remove("X-Frame-Options");
if (!AntiForgeryConfig.SuppressXFrameOptionsHeader)
httpResponse.AddHeader("X-Frame-Options", "SAMEORIGIN");
return new MvcHtmlString(token);
Here is a replacement Extension method for the HtmlHelper
class. It will first clear all X-Frame-Options
headers and then add back a single X-Frame-Options
header normally added by the built-in AntiForgeryToken
method.
This technique respects the SuppressXFrameOptionsHeader
setting, but has the downside of removing all previously added X-Frame-Options
headers, even those with values other than SAMEORIGIN
.
public static MvcHtmlString AntiForgeryTokenSingleHeader(this HtmlHelper html)
string token = AntiForgery.GetHtml().ToString();
HttpResponseBase httpResponse = html.ViewContext.HttpContext.Response;
httpResponse.Headers.Remove("X-Frame-Options");
if (!AntiForgeryConfig.SuppressXFrameOptionsHeader)
httpResponse.AddHeader("X-Frame-Options", "SAMEORIGIN");
return new MvcHtmlString(token);
answered Aug 27 '15 at 14:36
ZarephethZarepheth
1,60021740
1,60021740
add a comment |
add a comment |
If you want a little more flexibility, here's an ActionAttribute that adds/removes headers based on a whitelist. If the referrer isn't in the whitelist, then the SAMEORIGIN header is left in place. I was going to paste the code, but SO complains about the length.
https://long2know.com/2016/06/asp-net-anti-forgery-xframe-options/
add a comment |
If you want a little more flexibility, here's an ActionAttribute that adds/removes headers based on a whitelist. If the referrer isn't in the whitelist, then the SAMEORIGIN header is left in place. I was going to paste the code, but SO complains about the length.
https://long2know.com/2016/06/asp-net-anti-forgery-xframe-options/
add a comment |
If you want a little more flexibility, here's an ActionAttribute that adds/removes headers based on a whitelist. If the referrer isn't in the whitelist, then the SAMEORIGIN header is left in place. I was going to paste the code, but SO complains about the length.
https://long2know.com/2016/06/asp-net-anti-forgery-xframe-options/
If you want a little more flexibility, here's an ActionAttribute that adds/removes headers based on a whitelist. If the referrer isn't in the whitelist, then the SAMEORIGIN header is left in place. I was going to paste the code, but SO complains about the length.
https://long2know.com/2016/06/asp-net-anti-forgery-xframe-options/
answered Jun 30 '16 at 18:47
long2knowlong2know
1,02789
1,02789
add a comment |
add a comment |
Personally, I don't think it's a good idea to disable the X-Frame-Options across the whole site.I've created an ASP.NET MVC filter which removes this header and I simply apply this filter to the portions of the site that are used in iFrames e.g. widgets.
public class AllowDifferentOrigin : ActionFilterAttribute, IActionFilter
public override void OnResultExecuted(ResultExecutedContext filterContext)
filterContext.HttpContext.Response.Headers.Remove("X-Frame-Options");
base.OnResultExecuted(filterContext);
add a comment |
Personally, I don't think it's a good idea to disable the X-Frame-Options across the whole site.I've created an ASP.NET MVC filter which removes this header and I simply apply this filter to the portions of the site that are used in iFrames e.g. widgets.
public class AllowDifferentOrigin : ActionFilterAttribute, IActionFilter
public override void OnResultExecuted(ResultExecutedContext filterContext)
filterContext.HttpContext.Response.Headers.Remove("X-Frame-Options");
base.OnResultExecuted(filterContext);
add a comment |
Personally, I don't think it's a good idea to disable the X-Frame-Options across the whole site.I've created an ASP.NET MVC filter which removes this header and I simply apply this filter to the portions of the site that are used in iFrames e.g. widgets.
public class AllowDifferentOrigin : ActionFilterAttribute, IActionFilter
public override void OnResultExecuted(ResultExecutedContext filterContext)
filterContext.HttpContext.Response.Headers.Remove("X-Frame-Options");
base.OnResultExecuted(filterContext);
Personally, I don't think it's a good idea to disable the X-Frame-Options across the whole site.I've created an ASP.NET MVC filter which removes this header and I simply apply this filter to the portions of the site that are used in iFrames e.g. widgets.
public class AllowDifferentOrigin : ActionFilterAttribute, IActionFilter
public override void OnResultExecuted(ResultExecutedContext filterContext)
filterContext.HttpContext.Response.Headers.Remove("X-Frame-Options");
base.OnResultExecuted(filterContext);
answered Mar 27 at 5:18
Denys WesselsDenys Wessels
13.7k1256105
13.7k1256105
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f20254303%2fmvc-5-prevents-access-to-content-via-iframe%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
This same question was just asked, so if you don't get an answer here, keep an eye on that one.
– Joe Enos
Nov 27 '13 at 22:31