【发布时间】:2012-10-16 11:25:41
【问题描述】:
我已经实现了在 IIS 中部署的 ASP.Net 应用程序,并启用了 http 和 https 端口。现在我需要根据 Web.Config 值拒绝 HTTP 请求。如果此值设置为 True,那么它不应该接受 HTTP 附带的请求,就像它应该抛出错误 Invalid Operation.. Try requesting with Secure connection 一样。我做的第一件事是在 Global.asax 文件中检查如下:
if (Utilities.Utility.HttpsCheck)
{
if (!Request.IsSecureConnection)
{
Response.Write("Invalid Operation");
}
}
在这个方法中我得到了一个异常request is not available in this context。我用谷歌搜索了这个错误,并知道在 ASP.NET 的全局文件中无法访问 Request。
我尝试的下一个方法是在我的项目的每个页面中添加上面的代码,并在处理请求之前检查它。但是通过这种方式,我无法控制阻止对 HTML 页面的请求,我的项目中也有一些 html 页面,这些文件也需要限制。
如果我在页面中包含代码,那么它仅适用于该页面。但我在网站上也有一些图像/视频文件,这些也需要限制。
有没有更好的方法来做到这一点?请在这方面帮助我。
提前致谢。
【问题讨论】:
-
为什么不直接删除 IIS 中的 http 绑定?
-
@JonEgerton - 是的,我可以删除 IIS 中的 Http 绑定,但有时我需要启用此 http 访问。这就是我检查基于代码的解决方案而不是每次都更改 IIS 配置的原因。