在请求处理ASP.NET MVC之前验证主机名或IP地址

时间:2013-09-07 06:26:35

标签: asp.net asp.net-mvc-3

我想让我的ASP.NET MVC 3 Web应用程序仅在特定的主机名或IP地址上运行。如果有人试图在不同的主机或IP地址上托管该站点,该网站应该停止工作,因为它看到的主机名/ IP地址不同于配置(基本上,在应用程序DLL中硬编码)。

知道在ASP.NET MVC中如何有效地实现这一点吗?

3 个答案:

答案 0 :(得分:1)

使用HTTP Module过滤请求。

答案 1 :(得分:1)

在Global.asax文件中创建新的BeginRequest函数:

protected void Application_BeginRequest(object sender, EventArgs e)
{
    HttpApplication application = (HttpApplication)sender;

    if (application.Request.Url.Host != "mydomain.com")
    {
        application.CompleteRequest();
    }
}

答案 2 :(得分:0)

实现它的另一种方法 正在创建一个动作属性来验证该请求:P

public class HostValidatorAttribute : ActionMethodSelectorAttribute 
{
   public override bool IsValidForRequest(ControllerContext controllerContext, System.Reflection.MethodInfo methodInfo) 
   {
       //validate here and returns true if valid
   }
}