Проверка подлинности Windows для Intranet/Internet
Я разрабатываю веб-приложение ASP.net для своей компании. Некоторые пользователи используют этот сайт во внутренней сети (Intranet), а некоторые используют интернет-сайт. Я использую режим проверки подлинности Windows.
Мне нужно найти способ не запрашивать режим проверки подлинности Windows для пользователя интрасети и prompt Режим проверки подлинности Windows для пользователя Интернета.
Как я могу это сделать?
Ответы
Ответ 1
В зависимости от того, что вы описываете, проверка подлинности Windows в IIS сделает трюк.
Сначала некоторые ссылки:
Однако обратите внимание на следующее:
Единый вход (SSO) (т.е. доступ к приложению без указания имени пользователя и пароля) произойдет, если все верно:
- Клиентский компьютер и сервер являются частью одного домена Active Directory.
- Пользовательский сеанс на клиентском компьютере является пользователем домена AD.
- Клиентский компьютер имеет доступ к серверу домена (то есть серверу, ответственному за вход пользователя)
- Браузер - Internet Explorer.
- Используемый URL указывает на полное доменное имя сервера (т.е. http://SERVERNAME.DOMAIN.NAME/ не просто http://SERVERNAME/
- Уполномоченные пользователи должны иметь доступ для чтения к каталогу приложения, если вы используете олицетворение. Приложение будет работать с их учетными данными в основном. (подробнее в статья MSDN)
При любых других обстоятельствах пользователю будет предложено ввести учетные данные (имя пользователя и пароль) для учетной записи в домене Active Directory. Таким образом, пользователь, получающий доступ к вашему веб-серверу из Интернета, получит всплывающее окно с просьбой предоставить имя пользователя и пароль.
Сообщаем, что для пользователя, не использующего одиночный сигнал (запрашивается имя пользователя и пароль), режим проверки подлинности HTTP, скорее всего, будет BASIC, что означает, что любой, кто может перехватить это соединение, сможет видеть заменяемое имя пользователя и пароль, Если вы пойдете с этой техникой, убедитесь, что соединение между клиентом и сервером зашифровано (HTTPS или, возможно, VPN).
Ответ 2
Убедитесь, что ваш веб-сервер работает в домене, и все ваши пользователи в Интранете имеют доступ для чтения к папке, содержащей ваш веб-сайт на веб-сервере.
Затем убедитесь, что у вас есть в вашем web.config(при условии, что вы хотите определить, какой пользователь домена обращается к вашему сайту.
Наконец, откройте диспетчер IIS и щелкните правой кнопкой мыши веб-сайт и выберите "Свойства". Оттуда перейдите на вкладку "Безопасность каталога" и нажмите "Изменить" с помощью проверки подлинности и контроля доступа. Снимите флажок "Анонимный доступ" и убедитесь, что установлена "Встроенная проверка подлинности Windows". Это должно заставить веб-сайт вести себя так, как ожидалось (предполагая, что ваши клиенты интрасети используют IE)
Ответ 3
Насколько я знаю, проверка подлинности Windows может использоваться только для интрасети, но вы также можете включить аутентификацию форм для аутентификации пользователей Интернета. Эта страница содержит некоторую информацию и ссылку на учебник о том, как это сделать.
Ответ 4
Я бы, скорее всего, развернул приложение на двух разных серверах. Windows на сервере внутри брандмауэра, который доступен и доступен пользователям, прошедшим проверку подлинности Windows. на публичной стороне вы устанавливаете веб-конфигурацию для использования проверки подлинности форм, а затем беспокоитесь о том, чтобы обеспечить подключение к серверу.
однако, если вы хотите использовать для этого один сервер, вы можете прочитать эту статью MSDN: Смешивание форм и безопасности Windows в ASP.NET