2013-09-03 4 views
0

Я пытаюсь добавить аутентификацию Active Directory в систему справки, которая была построена много лет назад. Постепенно мы будем модернизировать всю систему. Я начинаю с создания приложения MVC2, на котором будет находиться логин, а затем мой план состоит в том, чтобы привнести текущую функциональность в MVC, поскольку мы также добавляем новые функции.MVC2 Аутентификация Active Directory

Но логин - это основа всей вещи. Нам нужен аудит, поэтому нам нужно знать, кто в системе.

Я читал статьи, другие сообщения stackoverflow и следил за несколькими проходами MS к письму. Я смог заставить его работать как веб-сайт ASP, но когда это приложение MVC, я не могу его получить. Приложение ASP требовало добавления обширных методов, и все, что я читал, звучит так, как MVC, должно быть намного проще.

Вот мои настройки IIS и модов, которые я сделал в моей web.config:

аутентификации IIS

  • Anonymous: Disabled
  • ASP.NET олицетворения: Disabled
  • Формы : Разрешено
  • Оконные: 0

    ... ...

я получаю следующее сообщение об ошибке:

HTTP Error 401.2 - Unauthorized You are not authorized to view this page due to invalid authentication headers.

конечная цель для аутентификации пользователя в на главной странице. Если они не могут быть аутентифицированы, принудительно введите логин.

EDIT: Enabled анонимной проверки подлинности

Я включил анонимную проверку подлинности, чтобы увидеть, если какие-либо основные ошибки могут быть источником проблемы. Я получил следующее сообщение об ошибке:

The container specified in the connection string does not exist.

Это найти ошибку в определении MyADMembershipProvider.

<add name="MyADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ADConnectionString" /> 

Я изменил мое подключение строку следующее:

<add name="ADConnectionString" connectionString="LDAP://server.domain.com"/>

Это было успешно перенаправлять на страницу входа в систему, но не аутентифицировать меня автоматически. И когда я установил Anonymous в Disabled еще раз, я вернулся к исходной ошибке.

Я думаю, что мне не хватает каких-то существенных знаний здесь, что я не получаю от материалов, которые я читаю.

EDIT: Аутентификация не работает на всех

Я думал, что это может быть стоит добавить, что аутентификация не работает вообще. MembershipService.ValidateUser всегда возвращает false.

ответ

0

Я думаю, что решение относится к типу аутентификации. Первоначально я использовал следующее:

аутентификации IIS

  • Anonymous: Инвалид
  • ASP.NET олицетворения: инвалидов
  • формы: Enabled
  • Окна: Disabled

И в моем файле Web.config я использовал аутентификацию Forms. Видимо для проверки подлинности Active Directory, тип должен быть Windows.

Оригинал:

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogOn" timeout="2880" /> 
</authentication> 

После доработки:

<authentication mode="Windows" /> 

<authorization> 
    <deny users="?" /> 
</authorization> 

Я знаю, что это работает, но так как я новичок в MVC, я мог бы все еще не хватает чего-то.

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