2013-09-03 6 views
0

J'essaie d'ajouter l'authentification Active Directory à un système de support technique créé il y a des années. Petit à petit, nous mettrons à jour tout le système. Je commence par créer une application MVC2 qui hébergera la connexion, et mon plan est d'intégrer les fonctionnalités actuelles dans le MVC, car nous ajoutons également de nouvelles fonctionnalités.Authentification Active Directory MVC2

Mais la connexion est la base de l'ensemble. Nous avons besoin de vérification, nous devons donc savoir qui est dans le système. J'ai lu des articles, d'autres messages de stackoverflow, et ai suivi quelques passages à niveau MS à la lettre. J'ai été capable de le faire fonctionner comme un site Web ASP, mais quand il s'agit d'une application MVC, je n'arrive pas à l'obtenir. L'application ASP nécessitait l'ajout de méthodes étendues, et tout ce que je lis donne l'impression que MVC devrait être beaucoup plus simple.

Voici mes paramètres IIS et les mods que j'ai fait à mon web.config:

IIS authentification

  • Anonyme: Désactivé
  • ASP.NET Impersonation: Désactivé
  • Forms : Activé
  • Windows: désactivé

    ... ...

Je continue à obtenir l'erreur suivante:

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

objectif final est d'authentifier l'utilisateur à la page d'accueil. S'ils ne peuvent pas être authentifiés, forcez le login.

EDIT: Activé authentification anonyme

J'ai activé l'authentification anonyme pour voir si des erreurs sous-jacentes pourraient être la source du problème. Je suis l'erreur suivante:

The container specified in the connection string does not exist.

Il est de trouver l'erreur dans la définition de MyADMembershipProvider.

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

je changé ma chaîne de connexion à ce qui suit:

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

Ce ne redirect avec succès à la page de connexion, mais il ne m'a pas automatiquement authentifiez. Et quand j'ai placé Anonymous à Disabled encore, j'étais de retour à l'erreur originale.

Je pense que je manque des connaissances essentielles ici que je ne reçois pas des matériaux que je lis.

EDIT: L'authentification ne fonctionne pas du tout

Je pense qu'il pourrait être utile d'ajouter que l'authentification ne fonctionne pas du tout. MembershipService.ValidateUser renvoie toujours false.

Répondre

0

Je pense que la solution est dans le type d'authentification. A l'origine, j'utilisais ce qui suit:

IIS authentification

  • Anonyme: Désactivé
  • ASP.NET Impersonation: Désactivé
  • Forms: Activé
  • Fenêtres: Désactivé

Et dans mon fichier Web.config j'utilisais l'authentification Forms. Apparemment, pour l'authentification Active Directory, le type doit être Windows.

Original:

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

Révision:

<authentication mode="Windows" /> 

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

Je sais que cela a fonctionné, mais depuis que je suis nouveau MVC, I Could Il manque encore quelque chose.

Questions connexes