2009-03-03 9 views
9

Je suis en train de déployer une application dans un réseau client, avec AD/contrôleur de domaine.Windows Authentification invite pour nom d'utilisateur/mot de passe

Mon application est une simple application asp.net C#, utilisant l'authentification Windows.

J'utilise win2003.

Fondamentalement, en utilisant VS2008, créez un nouveau site Web, hébergé sur IIS6.0. Seulement 2 changements. 1. Sur la sécurité du répertoire IIS pour l'application, activé "Sécurité intégrée".
Remarque: l'anonymat est également activé.

Un seul changement au code squelette généré. Ajouter ci-dessous pour la méthode page_load de default.aspx

using System.Security.Principal; 
... 
protected void Page_Load(object sender, EventArgs e) 
{ 
    WindowsIdentity id = WindowsIdentity.GetCurrent(); 
    Response.Write("<B>Windows Identity Check</B><br>"); 
    Response.Write("Name: " + id.Name + "<br>"); 
    Response.Write("<BR>"); 
    Response.Write("User.Identity: " + User.Identity.Name); 
    Response.Write("<BR>"); 
} 

sortie de la navigation sur la page: Windows Identity Check- Nom: NT AUTHORITY \ NETWORK SERVICE User.Identity:

Le User.Identity.Name ne génère pas le nom d'utilisateur actuel.

Comme il est indiqué dans cet article http://weblogs.asp.net/scottgu/archive/2006/07/12/Recipe_3A00_-Enabling-Windows-Authentication-within-an-Intranet-ASP.NET-Web-application.aspx

J'ai ajouté:

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

D'après ce que j'userstand est que, lorsque cela est ajouté, je peux obtenir les utilisateurs actuels, le nom d'utilisateur de User.Identity.Name .

Cependant, une fois que j'ai ajouté ce qui précède, le navigateur me demande maintenant un nom d'utilisateur et un mot de passe. Une fois que je l'ai entré, je peux utiliser User.Identity.Name pour obtenir le nom d'utilisateur. Cependant, je ne veux pas que le nom d'utilisateur/mot de passe apparaisse. Je souhaite que l'application authentifie l'utilisateur en fonction de ses informations d'identification réseau.

Ai-je raté quelque chose?

+0

Quel navigateur avez-vous tester avec? Seul IE transmettra l'authentification de nom d'utilisateur/mot de passe Windows. –

+1

Ce n'est pas nécessairement vrai - FireFox prend en charge l'authentification intégrée de Windows. –

+0

Ouais, Firefox n'a pas de problème avec ça, il ne traite pas les noms d'hôtes locaux comme des zones de confiance/intranet par défaut comme le fait IE - mais il peut être configuré pour. Il y a même un modèle existant ADM quelque part pour FF Je pense que pour les administrateurs système paresseux à utiliser. –

Répondre

0

Quelle URL utilise votre site et quelle est la zone IE? Si votre application est en cours d'exécution en dehors de la zone LocalIntranet, l'authentification passthrough est bloquée, en invitant toujours Utilisateur/Mot de passe.

+0

J'essaie toujours d'y accéder localement, en utilisant http: // localhost/site. Il invite sur tous, IE, Firefox et Chrome – minalg

+0

Pouvez-vous ajouter les journaux IIS pertinents à votre question - à la recherche de la série 401/200 d'éléments de journal. Aussi pouvez-vous essayer http://127.0.0.1/site et voir si vous êtes invité? –

0

L'option "Activer l'authentification intégrée Windows" est-elle sélectionnée dans les options Internet d'Internet Explorer?

Est-ce que l'IUSR_ et le nom d'utilisateur que vous entrez ont les autorisations Lire et Exécuter dans le répertoire où l'application est hébergée?

Le répertoire de l'application se trouve-t-il sur le serveur IIS ou se trouve-t-il sur un partage où les autorisations de partage Windows entrent en jeu?

3

Vérifiez qu'Internet Explorer sait que le site fait partie de la zone intranet locale. En outre, sous les paramètres de la zone intranet, vérifiez que la connexion automatique est activée.

3

Votre configuration dans IIS est incorrecte - désactivez l'accès anonyme, puis l'authentification intégrée démarre, en supposant que vous l'avez également définie dans votre site Web.config via

<configuration> 
    <system.web> 
     <authentication mode="Windows" /> 
    </system.web> 
</configuration> 
0

Je pense que vous ne pouvez pas le contrôler à partir de l'application serveur, il est fonction du navigateur pour transmettre les informations d'identification, dans Internet Explorer, vous pouvez recommander vos utilisateurs de vérifier « activer l'authentification intégrée Windows » dans Internet options-> Avancé

0

Vous ne voulez pas modifier de configuration dans le fichier we.config. Dans le gestionnaire de serveur IS de l'authentification du site, activez uniquement l'authentification Windows et désactivez les autres authentifications. enter image description here

L'authentification Windows nécessite vos informations d'identification windows = pour authentifier l'utilisateur. C'est la raison pour laquelle vous devez vous connecter. Pour éviter cela, vous devez définir l'adresse IP ou le domaine de votre site en tant que site intranet de confiance dans votre navigateur client. Pour cela;

1) Accédez aux paramètres du navigateur -> Ouvrir les paramètres de proxy -> Sécurité -> Intranet local -> Sites -> Avancé

2) Ensuite, ajoutez votre nom de domaine du site ou l'adresse IP enter image description here

voir maintenant si votre problème est correct après la mise en cache du navigateur.

Ce travail pour moi. :)

0

Vous ne voulez pas modifier de configuration dans le fichier we.config. Dans le gestionnaire de serveur IS de l'authentification du site, activez uniquement l'authentification Windows et désactivez les autres authentifications. enter image description here

L'authentification Windows nécessite vos informations d'identification windows = pour authentifier l'utilisateur. C'est la raison pour laquelle vous devez vous connecter. Pour éviter cela, vous devez définir l'adresse IP ou le domaine de votre site en tant que site intranet de confiance dans votre navigateur client. Pour cela;

1) Accédez aux paramètres du navigateur -> Ouvrir les paramètres de proxy -> Sécurité -> Intranet local -> Sites -> Avancé

2) Ensuite, ajoutez votre nom de domaine du site ou l'adresse IP enter image description here

voir maintenant si votre problème est correct après la mise en cache du navigateur.

Ce travail pour moi. :)

Vérifiez cela aussi Receiving login prompt using integrated windows authentication

+0

Ne postez pas la même réponse plusieurs fois. – Sunil

Questions connexes