1

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

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

4

3 回答 3

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();
    }
}
于 2013-09-08T18:08:04.423 回答
0

使用HTTP 模块过滤请求。

于 2013-09-07T06:45:06.677 回答
0

完成它的另一种方法是创建一个操作属性来验证该请求:P

public class HostValidatorAttribute : ActionMethodSelectorAttribute 
{
   public override bool IsValidForRequest(ControllerContext controllerContext, System.Reflection.MethodInfo methodInfo) 
   {
       //validate here and returns true if valid
   }
}
于 2013-09-11T17:11:57.630 回答