ASP.NET MVC с использованием IIS6: блокировка доступа к одному представлению (регистрация) - PullRequest
2 голосов
/ 15 июня 2009

Мы используем MVC на IIS6. Наш сайт в настоящее время открывается, но нам нужно ограничить доступ к регистрационной части сайта, но разрешить тем, кто может зарегистрироваться (т.е. из наших офисов), по-прежнему входить и использовать сайт полностью.

Так что внутри офиса можно получить доступ к реестру и всем остальным сайтам. Внешний офис не может получить доступ к регистрации и может получить доступ ко всем другим сайтам.

Изначально мы помещаем ограничения для IP-адресов наших офисов в файл register.aspx в папке views \ account. Мы были почти уверены, что это работает, но сегодня мы обнаруживаем, что это не так! Какие размышления об этом действительно имеют смысл!

Так возможно ли это?

Нам нужно, чтобы другие aspx-страницы в папке views \ account использовались в качестве представлений, при этом блокировалось только представление реестра.

Надеюсь, это имеет смысл!

Neil

Ответы [ 2 ]

2 голосов
/ 15 июня 2009

URL-адреса, определенные в ASP.NET MVC, настраиваются и не зависят от папки или файла, в котором находится страница просмотра. Это означает, что вы не можете использовать IIS для настройки доступа к этим страницам просмотра. Вы можете фильтровать доступ к контроллерам (и, таким образом, косвенно, к страницам просмотра, которые вызываются страницами просмотра). Это делается с помощью Action Filtering . О том, как создать пользовательский фильтр действий , см. На этой странице .

Так что да, есть возможность ограничить доступ к определенным страницам в зависимости от ip-адреса.

1 голос
/ 15 июня 2009

Я сталкивался с подобной ситуацией и раньше, но проблема была решена тем, как мы пишем приложения.

Всякий раз, когда у нас было приложение с «отображаемой информацией» и «способом управления данными», мы всегда создавали отдельные проекты пользовательского интерфейса поверх бизнес-логики. Это не просто для удобства обслуживания, это также означает, что общедоступный бит может быть развернут на общедоступном веб-сайте, а доступ к биту администратора возможен через сеть - поэтому внешний доступ вообще отсутствует.

В вашем примере извлечение двух логических элементов будет означать, что вы можете развернуть два отдельных веб-проекта с разными правилами доступа в IIS.

Другим вариантом может быть проверка IP-адреса в исполняемом коде для запрещенной страницы - IP-адреса могут быть подделаны, поэтому это не является полностью безопасным решением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...