正如我在主题中已经提到的,我有一个 MVC 站点,我需要禁止将它加载到 IFrame 中。
我创建了用于测试目的的简单页面,并尝试将我的站点和 Google.com 加载到两个 IFrame 中。我可以看到我的网站已加载,但 Google 未加载。这意味着有必要在我的 MVC 站点中更改某些内容。
<!DOCTYPE html>
<html>
<body>
<iframe src="http://localhost:61831/" width="1200" height="800">
<p>Your browser does not support iframes.</p>
</iframe>
<iframe src="http://google.com" width="1200" height="800">
<p>Your browser does not support iframes.</p>
</iframe>
</body>
</html>
那么我必须在 MVC 站点中编写什么以及在哪里才能实现这一目标?
最佳答案
可以使用 X-Frame-Options
HTTP header 属性可避免在 IFrame 中打开 ASP.NET MVC 应用程序。
有几种不同的方法可以将此属性插入到 HTTP header 中:
1. Configure IIS将此属性添加到所有 HTTP 响应
2.在每个 Controller 的每个必要的 Action 方法中设置这个属性
public class HomeController : Controller
{
public ActionResult Index()
{
Response.AppendHeader("X-Frame-Options", "SAMEORIGIN");
return View();
}
}
3.以描述的方式创建C#属性here并将其应用于操作方法和 Controller
[HttpHeader("X-Frame-Options", "SAMEORIGIN")]
public class HomeController : Controller
{
public ActionResult Index()
{
}
}
4.在
Global.asax
中设置该属性文件public class MvcApplication : HttpApplication
{
protected void Application_Start()
{
...
}
protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
Response.AppendHeader("X-Frame-Options", "SAMEORIGIN");
}
}
关于asp.net-mvc - 如何在 IFrame 中禁用打开的 ASP.NET MVC 站点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21258155/