6

I wdrożone uwierzytelniania formularz oparty, który używa AD w aplikacji ASP MVC 3 następujące kierunki znalazłem tutaj ASP.NET MVC - Authenticate users against Active Directory, but require username and password to be inputtedASP.NET MVC Formularz oparty uwierzytelniania przy użyciu AD działa lokalnie, ale nie na serwerze (IIS7)

I działa bez zarzutu kiedy uruchomić przy użyciu ASP.NET Development Server, ale nie wykracza poza strony logowania po tym jak wprowadzić swoje dane uwierzytelniające i daje następujący błąd:

błąd konfiguracji

Opis: occu błąd rred podczas przetwarzania pliku konfiguracyjnego wymaganego do obsługi tego żądania. Sprawdź szczegółowe informacje o błędach poniżej i odpowiednio zmodyfikuj plik konfiguracyjny.

Komunikat o błędzie analizatora składni: Wystąpił błąd operacji.

Błąd Źródło:

Line 37:  <membership defaultProvider="MY_ADMembershipProvider"> 
Line 38:  <providers> 
Line 39:   <add name="MY_ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider" connectionStringName="ADConnectionString" attributeMapUsername="sAMAccountName" /> 
Line 40:  </providers> 
Line 41:  </membership> 

Każda pomoc będzie mile widziane, z góry dzięki.

UPDATE: Dotychczas po kilku debugs myślę, błąd może być pochodzących z System.Web.Security.ActiveDirectoryMembershipProvider w config web.xml, dodałem System.Web (w którym stwierdzono, że klasa) jako punkt odniesienia, a także zrobić kopia lokalna, ale nadal, zip ... :(

Odpowiedz

6

Upewnij się, że minęło poprawną nazwę użytkownika i hasło konta, które ma wystarczających uprawnień do kwerendy reklamę:

<add 
    name="MY_ADMembershipProvider" 
    type="System.Web.Security.ActiveDirectoryMembershipProvider" 
    connectionStringName="ADConnectionString" 
    attributeMapUsername="sAMAccountName" 
    connectionUsername="YOURDOMAIN\SomeAccount" 
    connectionPassword="secret" 
/> 

Jeśli nie chcesz w tym celu musisz skonfigurować Application Poo lw IIS uruchamiane pod kontem, które ma wystarczające uprawnienia do wysyłania zapytań do Active Directory. Domyślnie aplikacja działa pod lokalnym kontem NetworkService, które nie ma dostępu do AD.

+0

Może nie być tak, ponieważ aplikacja działa doskonale, gdy przełączam się z Formularzy na system Windows jako metodę uwierzytelniania. – dotKwame

+0

To zupełnie normalne. Podczas korzystania z uwierzytelniania systemu Windows używasz poświadczeń klienta do wysyłania zapytań o reklamę. Podczas korzystania z anonimowego uwierzytelniania nie ma żadnych uprawnień. –

+0

Po prostu przetestuj to z niestandardowym dostawcą członkostwa AD, który "ręcznie" uwierzytelnił za pośrednictwem AD w kodzie 'DirectoryEntry dsEntry = new DirectoryEntry (ldapSvrAddr, model.Username, model.Password); obiekt nativeobj = dsEntry.NativeObject; ', następnie zmienił typ w web.config z' System.Web.Security.ActiveDirectoryMembershipProvider' na 'MyNamespace.MyCustomADClass' i działał poprawnie (bez połączenia nazwa_użytkownika lub wymagane hasło), ale chcę użyj standardowego dostawcy usług AD w strukturze .net i nie skończ do implementowania wszystkiego: – dotKwame

6

Zmieniłem Tożsamość puli aplikacji z "ApplicationPoolIdentity" na "NetworkService" i wszystko działa teraz świetnie.

+0

To również zadziałało u mnie! – chridam

+0

Jak to zmienić? – Shrivallabh

Powiązane problemy