允许特定用户访问托管上的应用程序

时间:2011-09-12 09:22:20

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

我要在托管上发布我的应用程序,我已经决定了我要购买的托管服务。我希望能够拒绝任何人从网上查看该应用程序,除了一些将要进行测试的人。

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

你有什么经历?

我的应用程序基于asp.net mvc 3.0。

主持我选择arvixe.com(尚未购买)。我在电子邮件中问他们这个问题,但还没有得到任何回复

1 个答案:

答案 0 :(得分:1)

正如您已经指出的那样,使用IIS限制/允许特定IP地址非常容易。但在您的情况下,您的提供商可能不会授予您调整此部分的权限。

您可以做的是创建一个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 */ }
}