Вот как это сделать при проверке подлинности на основе веб-приложений, поэтому может потребоваться адаптация к MVC. Используйте систему членства и ролей asp.net. Настройте поставщика для использования поставщика членства в Active Directory И ТАКЖЕ используйте формы для проверки подлинности.
<authentication mode="Forms">
<forms name=".ADAuthCookie"
timeout="10"
loginUrl="Login.aspx"
defaultUrl="Default.aspx">
</forms>
или что-то в этом роде ...
Настройка провайдера будет выглядеть примерно так:
<membership defaultProvider="DomainLoginMembershipProvider">
<providers>
<add name="DomainLoginMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ADConnectionString"
connectionProtection="Secure"
connectionUsername="domainuser"
connectionPassword="pwd"
attributeMapUsername="sAMAccountName"
enableSearchMethods="false"/>
</providers>
</membership>
Защита соединения, имя пользователя и pwd предназначены для учетной записи, которая имеет доступ к запросу AD от имени системы. В зависимости от безопасности вашей сети это может потребоваться настроить, иначе вы не сможете запросить AD для аутентификации пользователя.
Строка подключения будет выглядеть примерно так:
<connectionStrings>
<add name="ADConnectionString"
connectionString="LDAP://servername:port#/DC=domainname"/>
</connectionStrings>
Строка подключения может принимать различные формы, поэтому вам, возможно, придется исследовать ее для вашей среды.
Для страницы входа в систему вам может потребоваться выполнить метод аутентификации и проверить ...
e.Authenticated = Membership.ValidateUser(username, password);
if (e.Authenticated == false)...
Книга Стивена Шакоу "Профессиональная безопасность ASP.Net 2.0, членство и управление ролями" хорошо освещает использование членства в AD (глава 12). Это не в контексте MVC, но конфигурация и настройка будут одинаковыми.