localhost是否可以安全检查作为安全条件

时间:2014-08-25 11:39:40

标签: c# asp.net httphandler

我有一个HttpHandler可以执行某些操作,但我希望在本地计算机上运行时不要运行它。现在,当我在Visual Studio中运行站点时,我只是在web.config文件中注释掉处理程序,并在部署站点时取消注释它:繁琐。我想添加一个条件来检查网站是否在我的本地计算机上运行,​​如下所示:

public void ProcessRequest(HttpContext context)
{
    if (context.Current.Request.Url.Host != "localhost") { DoSomething(); }
}

这是安全还是可能在部署条件时不会触发?

感谢。

2 个答案:

答案 0 :(得分:2)

相反,我建议您使用:

HttpContext.Current.Request.IsLocal

答案 1 :(得分:1)

您还可以查看Request.IsLocal

检查本地(主机)是否有效取决于您的其他设置,例如当同一台机器上的站点或代理调用它时,可能导致请求看起来来自同一台机器,尽管它实际上是外在的。

  

现在,我只是在web.config

中注释掉处理程序

听起来您可以使用configuration transform代替,因此处理程序不会包含在部署版本中。