2011-09-12 86 views
1

我要发布我的应用程序托管,我已经决定要购买哪个主机。我希望能够拒绝任何人从网络上查看该应用程序,除了一些将要测试该应用程序的人。允许特定用户访问托管应用程序

我不知道是否托管通常允许做一些类似的事情,设置一些选项或任何IP地址限制的应用程序。我知道它可以在IIS中执行,但不知道是否托管允许直接访问IIS。否则,我需要在我的应用程序中实现。

你有什么经验?

我的应用程序建立在asp.net mvc 3.0上。

托管我选择arvixe.com(尚未购买)。我问他们关于电子邮件的问题,但没有得到任何回应

回答

1

正如你已经指出,这是很容易限制/允许特定的IP地址与IIS。但在您的情况下,您的提供商可能不会授予您调整此部分的权限。

你可以做的是创建一个HttpModule并通过这种方式限制IP地址。下面是这个实现的很好的例子:

http://www.codeproject.com/KB/aspnet/http-module-ip-security.aspx

下面是该代码:

/// <summary> 
/// HTTP module to restrict access by IP address 
/// </summary> 

public class SecurityHttpModule : IHttpModule 
{ 
public SecurityHttpModule() { } 

    public void Init(HttpApplication context) 
    { 
     context.BeginRequest += new EventHandler(Application_BeginRequest); 
    } 

    private void Application_BeginRequest(object source, EventArgs e) 
    { 
     HttpContext context = ((HttpApplication)source).Context; 
     string ipAddress = context.Request.UserHostAddress; 
     if (!IsValidIpAddress(ipAddress)) 
     { 
      context.Response.StatusCode = 403; // (Forbidden) 

     } 
    } 

    private bool IsValidIpAddress(string ipAddress) 
    { 
     return (ipAddress == "127.0.0.1"); 
    } 

    public void Dispose() { /* clean up */ } 
} 
相关问题