CORRECTIF : message d'erreur « Accès refusé » lorsque vous essayez d'accéder service d'indexation à partir d'ASP.NET avec l'emprunt d'identité à activé

Traductions disponibles Traductions disponibles
Numéro d'article: 323293 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Symptômes

Lorsque vous recherchez sur le serveur d'index sur une page ASP.NET, vous pouvez recevoir le message d'erreur suivantes :
L'accès est refusé. Description : une exception non gérée produites pendant l'exécution de la demande web actuelle. Veuillez consulter la trace de pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception : System.Data.OleDb.OleDbException : accès refusé.
Ce comportement est observé uniquement si vous activez l'emprunt d'identité pour l'application Web ASP.NET et si le contexte de sécurité sous lequel s'exécute le processus de travail ASP.NET (Aspnet_wp.exe) est le compte ASPNET.

Résolution

Informations sur le service pack

Pour résoudre ce problème, procurez-vous le dernier service pack pour Microsoft Windows 2000. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
260910 Comment obtenir le dernier pack de service Windows 2000

Contournement

Utilisez une des méthodes suivantes pour contourner ce problème :
  • Désactiver l'emprunt d'identité pour l'application Web ASP.NET entière. Il s'agit du paramètre par défaut.
  • Désactiver l'emprunt d'identité uniquement pour la page .aspx donnée qui effectue la recherche de serveur d'index. Pour ce faire, ajouter une balise <location> dans le fichier Web.config comme suit :
    <location path="filename.aspx">
    <system.web>
       <identity impersonate="false" />
    </system.web>
    </location>
    					
Si ces solutions ne sont pas acceptable pour vous, vous pouvez modifier le contexte de sécurité sous lequel le processus de traitement ASP.NET s'exécute sur le compte système. Vous toutefois, Microsoft ne pas recommandons de définir le contexte de sécurité du processus de traitement ASP.NET au compte SYSTEM car le compte système est un compte administrateur privilèges élevés sur l'ordinateur serveur Web. Utilisez cette solution de contournement uniquement si aucun des autres solutions de contournement n'est pas acceptable pour vous.

Pour modifier le contexte de sécurité sous lequel s'exécute le processus de traitement ASP.NET, définir l'attribut userName à système et définir l'attribut de mot de passe à autogenerate dans le <processmodel>section du fichier Machine.config. Le fichier machine.config se trouve dans le dossier de \Microsoft.Net\Framework\v1.0.3705\Config C:\ Windows Directory.

Statut

Microsoft a confirmé qu'il s'agit un bogue dans les produits Microsoft répertoriés dans la section « S'applique à ». Ce problème a été corrigé dans ASP.NET (inclus avec le .NET Framework) 1.1. Microsoft a confirmé que c'est un problème dans Microsoft Windows 2000. Ce problème a été corrigé dans Windows 2000 Service Pack 4.

Plus d'informations

Procédure pour reproduire le comportement

  1. Démarrez Microsoft Visual Studio .NET.
  2. Créer une application Web ASP.NET.
  3. Ajoutez le code suivant dans le code HTML d'une page .aspx :
    <%@ Page language="c#" %>
    <%
                System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection("provider=msidxs;");
    
                conn.Open();
    
                string Sql = "Select DocTitle, vpath, characterization, rank from Scope(' DEEP TRAVERSAL OF \"C:\\\" ')  where FREETEXT(' \"ticket\" ') order by rank desc";
    
                System.Data.OleDb.OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter(Sql, conn);
    
                System.Data.DataSet ds = new System.Data.DataSet();
    
                da.Fill(ds, "SearchResults");
                Response.Write("Search Results: <br>");
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
    
                {
    
                            Response.Write("<br>" + ds.Tables[0].Rows[i]["vpath"].ToString());
    
                }
    
    %>
    					
  4. Modifier le fichier Web.config pour permettre l'usurpation d'identité comme suit :
    <identity impersonate="true" />
    					
  5. Assurez-vous que le contexte de sécurité sous lequel s'exécute le processus de traitement Aspnet_wp.exe est le compte ASPNET. Pour ce faire, définissez l'attribut userName à machine et puis définissez l'attribut de mot de passe sur autogenerate dans le <processmodel>section du fichier Machine.config.

    note Par défaut, le processus de travail ASP.NET est défini pour s'exécuter sous le contexte du compte ASPNET restreint sécurité.
  6. Démarrez le service d'indexation sur votre ordinateur.
  7. Générez l'application et ouvrez la page .aspx dans votre navigateur. Notez que vous recevez le message d'erreur est répertorié dans la section « Symptômes ».

Références

Pour plus d'informations sur l'emprunt d'identité dans ASP.NET, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
306158 Comment implémenter l'emprunt d'identité dans une application ASP.NET
Pour plus d'informations l'identité du processus de travail ASP.NET, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
317012 Identité processus et de la demande dans ASP.NET

Propriétés

Numéro d'article: 323293 - Dernière mise à jour: mercredi 5 juillet 2006 - Version: 3.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft ASP.NET 1.0
  • Microsoft Index Server 2.0
  • Microsoft OLE DB Provider for Index Server 3.0
Mots-clés : 
kbmt kbhotfixserver kbqfe kbwin2ksp4fix kbother kbfix kbbug kbconfig kbnofix kbsecurity KB323293 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 323293
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com