2010-08-01 1 views
2

У меня есть приложение ASP.NET, состоящее из нескольких страниц .aspx. Я хочу, чтобы одна из этих .aspx-страниц была доступна только с определенным набором IP-адресов. Это возможно?Как белый список IP для одного URL-адреса в IIS

Я знаю, что вы можете использовать белый список IP на уровне веб-сайта, но можете ли вы использовать белый список IP-адресов для одного URL-адреса в приложении?

ответ

3

Следующий ресурс демонстрирует, как обнаружить клиент IP в ASP.NET:

http://bytes.com/topic/asp-classic/answers/439176-how-get-clients-ip-address-asp-net

После того, как у вас есть IP-адрес, загрузите белый список из механизма хранения вашего выбора, возможно, во время события Init (если на странице), и если IP не совпадает, если не реагировать, как это (использование HttpContext.Current.Response на странице:

if (!mySafeIpList.Contains(clientIP)) 
{ 
    Response.Clear() 
    Response.StatusCode = (int)HttpStatusCode.Unauthorized 
    Response.End() 
} 

Или просто перенаправлять на действительную страницу:

Response.Redirect("~/Head-Fake.aspx") 

Надеюсь, это поможет.

1

Вы всегда можете проверить Request.ServerVariables ["REMOTE_HOST"] на свой собственный белый список в своем приложении.

3

К сожалению, я уверен, что вы не можете сделать это для одной страницы через IIS (для получения более подробной информации обратитесь к Serverfault.com, если хотите проверить), но если вы хотите сделать это программно, вы можете подключить Application_BeginRequest в файле global.asax. Проверьте URL-адрес запроса и IP-адрес запроса на свои ограничения и разрешите продолжить его, только если они пройдут.

+1

+1: за предложение реализовать фильтр в 'Global.asax'. – kbrimington

 Смежные вопросы

  • Нет связанных вопросов^_^