У меня есть заказчик, который обратился к нам с необычным требованием, он хотел бы ограничить доступ пользователей по IP-адресу, чтобы Пользователь 1 мог получить доступ к системе только с IP-адресов A, B, C, а Пользователь 2 мог получить доступ с адресов AD и Ф.
Я не знаю, можно ли ограничить аутентификацию комбинацией IP-адреса для каждого имени пользователя.
Для этого нет встроенного механизма. По крайней мере, не так, как вы спрашиваете.
Однако вы можете подойти довольно близко.
Во-первых, как вы определяете «пользователей»? Являются ли они пользователями Active Directory, и веб-серверы являются членами одного и того же доменного имени? Если да, то вы можете отключить анонимную аутентификацию на веб-сайте и перейти на интеграцию аутентификации Windows. Затем вы добиваетесь контроля доступа, устанавливая разрешения безопасности клиента в NTFS - вы создаете группу AD, которая будет использоваться для управления доступом к веб-сайту, даете ей разрешения на чтение / выполнение в корневой веб-папке, а затем добавляете всех пользователей AD в группу. . Когда они подключаются к сайту, они автоматически аутентифицируются AD и получают разрешение на просмотр сайта.
Затем вы используете встроенные ограничения домена и IP в IIS - устанавливаете правило по умолчанию для ограничений IP на запрет всех, а затем добавляете каждый авторизованный IP-адрес.
Часть, которую вы не можете достичь, заключается в том, что любой пользователь может подключаться с любого IP-адреса в списке, вы не можете больше ограничивать его. Если вы хотите добиться большего, вам нужно самостоятельно закодировать поведение непосредственно в код программной части приложения asp.net (веб-формы), модель (MVC) или в global.asax (как упоминал Грег).