Numéro d'article: 320268 - Dernière mise à jour: mercredi 16 décembre 2009 - Version: 6.0

"System.Security.SecurityException : erreur de sécurité" message d'erreur lorsque le répertoire virtuel pointe à une distance partager dans ASP.NET

A noterCet article s'applique à un système d'exploitation différent de celui que vous utilisez. Le contenu de l'article qui ne vous concerne peut-être pas est désactivé.

Sommaire

Agrandir tout | Réduire tout

Symptômes

Lorsque vous utilisez un répertoire virtuel qui pointe vers un partage distant à ordinateur hôte une application ASP.NET de Microsoft, vous pouvez recevoir un message d'erreur est similaire à une des options suivantes :

Message 1
Description d'exception de sécurité : L'application a essayé d'effectuer une opération non autorisée par la stratégie de sécurité. Pour accorder à cette application l'autorisation requise contactez votre administrateur système ou modifier le niveau de confiance de l'application dans le fichier de configuration.

Détails de l'exception : System.Security.SecurityException : sécurité erreur.

Erreur source :

Ligne 30 : private static bool __intialized = false ; 31 de la ligne : ligne 32 : Global_asax() publique {ligne 33 : si ((ASP.Global_asax.__intialized == false)) {ligne 34 : ASP.Global_asax.__intialized = true ;
Message 2
Erreur du serveur dans ' / ApplicationName ' application.

Description de l'erreur analyseur : Une erreur s'est produite lors de l'analyse d'une ressource requise pour traiter cette demande. Veuillez consulter les détails d'erreur spécifiques d'analyse suivants, puis modifier votre fichier de source de manière appropriée.

Analyseur de message d'erreur : Impossible de charger le type «ApplicationName.Global».

Source d'erreur : ligne 1: < % @ Application Codebehind="Global.asax.cs" Inherits = "ApplicationName .global» % > Fichier source :Path of Application \global.asax ligne: 1

Cause

L'espace de noms System.Web ne dispose pas de l' attribut AllowPartiallyTrustedCallersAttribute appliqué. Pour plus d'informations, visitez suivant Microsoft Developer Network (MSDN) Web site :
http://msdn2.microsoft.com/en-us/library/ms994923.aspx (http://msdn2.microsoft.com/en-us/library/ms994923.aspx)
Tout code qui n'est pas dans le groupe de code My_Computer_Zone n'a pas de cet attribut requiert le droit d'utilisateur de confiance totale. Par conséquent, le partage distant qui stocke le contenu d'applications Web requiert FullTrust.

Résolution

Pour résoudre ce problème, accordez le droit de la confiance totale au partage distant :
  1. Sur le serveur Web, ouvrez Outils d'administration et double-cliquez sur Microsoft.NET Framework Configuration.
  2. Développez Stratégie de sécurité du Runtime, développez l'ordinateur, puis développez Groupes de codes.
  3. Cliquez avec le bouton droit sur tout le code, puis cliquez sur Nouveau.
  4. Sélectionnez créer un nouveau groupe de codes. Donnez un nom approprié, tel que le nom du partage d'applications à votre groupe de codes. Cliquez sur suivant.
  5. Dans la liste Choisissez le type de condition pour ce groupe de codes, sélectionnez URL.
  6. Dans la zone URL, tapez le chemin d'accès du partage dans le format suivant :
    file:////\\ computername \ nompartage \ *
    Remarque Remplacez computername par le nom de l'ordinateur qui héberge le partage distant. Remplacez sharename par le nom du partage.
  7. Cliquez sur suivant. Sur la page suivante, sélectionnez utiliser un jeu d'autorisations existant et puis sélectionnez FullTrust.
  8. Cliquez sur suivant, puis cliquez sur Terminer.
  9. Redémarrez Microsoft Internet Information Services (IIS) pour redémarrer le processus de travail.
Si Microsoft .NET Framework Configuration n'est pas affichée sous Outils d'administration, vous pouvez installer le Kit de développement .NET Framework SDK pour ajouter la Configuration de Microsoft .NET Framework. Vous pouvez également exécuter la commande suivante pour effectuer la modification :
Drive:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol.exe -m -ag 1 -url "file:////\\computername\sharename\*" FullTrust -exclusive on
Remarque Pour plus d'informations sur que faire ces arguments, exécutez la commande suivante :
caspol.exe-?

Statut

Ce comportement est voulu par la conception même du produit.

Plus d'informations

Dans cette configuration, le compte sous lequel le processus de travail ASP.NET s'exécute doit disposer des droits suffisants pour le partage distant. Vous pouvez définir le compte sous lequel le processus de travail s'exécute à l'aide de la balise processModel dans le fichier machine.config.

Procédure pour reproduire le comportement

  1. Créer un nouveau répertoire virtuel qui pointe vers un partage distant.
  2. Créer une application pour le répertoire virtuel. Assurez-vous que l'utilisateur qui se connecte au partage a accès en lecture au contenu distant.
  3. Dans la balise processModel du fichier machine.config, modifier l'utilisateur à un utilisateur de domaine disposant de liste, lecture et exécution des autorisations sur le partage distant.
  4. Créer un fichier .aspx inline et puis placez le fichier dans le partage distant.
  5. Faire une demande pour la page.

Références

Pour plus d'informations sur les autorisations dont le compte ASPNET a besoin pour exécuter des applications ASP.NET, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
317012  (http://support.microsoft.com/kb/317012/ ) Identité de processus et de la demande dans ASP.NET
Pour plus d'informations sur la sécurité ASP.NET, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
306590  (http://support.microsoft.com/kb/306590/ ) Vue d'ensemble de la sécurité ASP.NET

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
Mots-clés : 
kbmt kbsecurity kbwebserver kbprb KB320268 KbMtfr
Traduction automatiqueTraduction 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: 320268  (http://support.microsoft.com/kb/320268/en-us/ )
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.