Блокировка сайта с помощью проверки подлинности с помощью форм в IIS7 с проверкой подлинности Windows - PullRequest
0 голосов
/ 02 ноября 2009

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

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

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

EDIT:

Вот пояснение. Сайт должен работать так.

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

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

Ответы [ 2 ]

2 голосов
/ 02 ноября 2009

Хитрость здесь заключается в том, чтобы изменить провайдера для вашей аутентификации для использования 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]"
/>

В отношении авторизации у вас есть несколько вариантов. Если он основан на группах доменов, вам нужно подключить Azman. Если он управляется приложением, вам нужно настроить пользователей AD на роли, хранящиеся в базе данных.

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


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

0 голосов
/ 03 ноября 2009

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

IIS7 и проблемы с аутентификацией

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

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