0

Я разместил это на Server Fault, но поскольку для него есть своего рода программный аспект, я также опубликую его здесь.Заблокируйте сайт, используя Forms Auth в IIS7 с Windows Auth

У меня есть приложение ASP.NET MVC 1.0, которое использует аутентификацию по формам. Мы используем Windows Server 2008. Мне нужно заблокировать сайт, чтобы только определенные пользователи (в группах AD) могли получить доступ к сайту. К сожалению, однако, когда я установил, что сайт не разрешил анонимным пользователям и не использовал проверку подлинности Windows, из-за интеграции сайта и IIS он показывает пользователя как подписанный как свою учетную запись домена, вместо того, чтобы разрешать им регистрироваться через Forms Авт.

Итак, мне нужна аутентификация в смешанном режиме. Мне нужно, чтобы сайт был доступен только через windows auth, без анонимных пользователей, но как только вы находитесь, ему нужно использовать только формы auth. Как я буду делать это правильно?

EDIT:

уточнение. Сайт должен работать следующим образом.

  1. Вы переходите к URL-адресу, и появляется окно auth login. Вы входите в аккаунт домена, который имеет доступ. Если у вас нет доступа, он показывает ошибку 401.
  2. Если у вас есть доступ, вы попадаете на сайт. Однако сайт не использует имя пользователя auth для Windows. Он использует формы Auth. Итак, вы должны вздохнуть на сайт, используя формы auth.

Проблема заключается в том, что когда я устанавливаю ее для выполнения шага 1, она использует имя пользователя Windows на шаге 2. Я не хочу, чтобы это делалось.

ответ

0

Я нашел ответ здесь:

IIS7 and Authentication problems

Короткий часть его, в IIS 7 вы не можете иметь двухуровневую аутентификацию, как вы могли бы с IIS 6.

2

Трюк здесь заключается в том, чтобы изменить поставщика для вашей аутентификации на использование Active Directory, вместо того, чтобы изменять настройки в Windows.

Или используйте версию следующего поставщика:

<add 
name="AdProvider" 
type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
connectionStringName="YourAd" 
applicationName="YourApp" 
enablePasswordReset="false" 
    /> 

С версией следующей строки подключения:

<add name="YourAd" 
connectionString="LDAP://[your DC]/OU=[your OU],DC=[your domain],DC=[your extension]" 
/> 

Authorization-накрест, у вас есть несколько вариантов. Если он основан на доменах, то вам нужно будет подключить azman. Если это приложение контролируется, вам необходимо выстроить пользователей AD с помощью хранимых в базе данных ролей.

PS: Я сосать строки подключения LDAP, вы можете сделать с ним больше, чем я.


Ну, похоже, я ответил на неправильный вопрос. Я оставлю это для потомков, но вы должны просто попытаться отключить анонимную аутентификацию для сайта.

+0

Сайт использует формы AUTH , и это не может измениться. В IIS6 вы использовали возможность защиты доступа к окнам auth, а затем использовать формы auth в фактическом коде. Мне нужно это сделать. – Josh

+0

Отредактированный ответ на вопрос об обряде. См. Выше. –

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