我要在托管上发布我的应用程序,我已经决定了我要购买的托管服务。我希望能够拒绝任何人从网上查看该应用程序,除了一些将要进行测试的人。
我不确定托管通常允许做类似的事情,为app设置一些选项或任何IP地址限制。我知道可以在IIS中执行但不确定托管是否允许直接访问IIS。否则我需要在我的应用程序中实现它。
你有什么经历?
我的应用程序基于asp.net mvc 3.0。
主持我选择arvixe.com(尚未购买)。我在电子邮件中问他们这个问题,但还没有得到任何回复
答案 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 */ }
}