web-dev-qa-db-fra.com

Exception de sécurité (l'application a tenté d'effectuer une opération non autorisée par la stratégie de sécurité))

nous avons comme problème avec l'exception de sécurité suivante lorsque nous essayons d'ouvrir notre page de connexion admin .

 Security Exception
 Description: The application attempted to perform an operation not allowed by the security policy.
To grant this application the required 
permission please contact your system administrator or change the   application's trust level in the configuration file. 


 Exception Details: System.Security.SecurityException: Request failed.

tout d'abord, nous utilisons l'appartenance à un groupe pour les opérations d'authentification des utilisateurs. Nous avons deux applications distinctes, l'une pour l'administrateur, l'autre pour l'utilisateur, chacune ayant son propre fichier Web.Config .

Les données utilisateur sont téléchargées dans wwwroot, mais les données admin dans wwwroot/admin et admin webconfig. Nous définissons Login.aspx comme page par défaut pour admin (lorsque l’utilisateur entre mysite.com/admin) et nous avons créé un répertoire virtuel pour. admin (puisque nous avons deux fichiers Web.Config) nommé/admin avec le chemin mysite.com/wwwroot/admin

Ce qui est amusant, c’est que nous utilisons les mêmes méthodes (avec les mêmes membres, web.config et même hôte) dans d’autres projets, mais ils fonctionnent bien et le problème mentionné apparaît de temps à autre dans certains de nos projets. (ne se produit pas toujours) événement bien que tous les paramètres et infrastructures (pour tous les projets) soient identiques .

nous avons également le dossier app_Webreference pour certains de nos services Web, ce qui peut être à l’origine du problème, mais je ne suis pas sûr. Nous avons tenté de modifier le niveau de sécurité mais l’hôte ne nous le permet pas. de l'hôte, alors pourquoi n'aurions-nous pas ce problème avec certains de nos autres sites, je n'ai donc aucune idée de ce qui semble être le problème, mais c'est vraiment problématique s'il vous plaît aidez-moi

merci beaucoup

15
Code_Worm

Moi aussi, en ajoutant quelques lignes dans web.config pour autoriser niveau de confiance total dans mon application Web.

<system.web>
   <trust level="Full" />
</system.web>
12
Anjan Kant

J'ai trouvé cet article sur MSDN que je pense est pertinent (les détails de l'exception semblent être les mêmes). Il dit que cela s’applique à ASP.NET 1.0 et 1.1, mais c’est aussi à partir d’octobre 2005, de sorte qu’il n’a peut-être pas été mis à jour de manière explicite à dire quelle que soit la version que vous utilisez (probablement> = 4.0):

" CORRECTIF: Comment résoudre une exception de sécurité (ASP.NET)? " par Anand Narayanaswamy MVP.


Symptômes

Description: l'application a tenté d'effectuer une opération non autorisée par la stratégie de sécurité. Pour accorder à cette application l’autorisation requise, veuillez contacter votre administrateur système ou modifier le niveau de confiance de l’application dans le fichier de configuration.

Exception:

System.Security.SecurityException: Request Failed

Cause: l'erreur ci-dessus se produit car le domaine n'est pas placé dans son propre pool d'applications sur IIS et également en raison de l'absence du niveau de confiance approprié dans le fichier machine.config sur le serveur.

Résolution

  1. Créez un pool d'applications pour le domaine approprié à l'aide des services Internet (IIS). Connectez-vous au poste de travail distant et ouvrez le gestionnaire IIS. Développez l'arborescence Pools d'applications. Faites un clic droit et sélectionnez Nouveau | Application Pool et donnez les détails requis. 

  2. L'étape suivante consiste à placer le domaine sous le pool d'applications nouvellement créé. Pour effectuer cette action, développez l'arborescence intitulée Sites Web, puis Site Web par défaut. Sélectionnez votre nom de domaine, faites un clic droit dessus et choisissez l'élément de menu Propriétés. Sélectionnez la liste déroulante Pool d'applications et choisissez le nom du pool d'applications créé. 

Remarque: Vous pouvez automatiquement exécuter les étapes mentionnées ci-dessus à l'aide de certains panneaux de contrôle d'hébergement populaires si vous les avez installés sur le serveur.

  1. Ajoutez les lignes de code suivantes au fichier machine.config. Ce fichier se trouve sous le dossier - Nom du lecteur racine:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG.
<location path="yourdomain.com" allowOverride="true">
    <system.web>
        <trust level="Full" originUrl=""/>
    </system.web>
</location>

(A) Vous devez disposer de droits d’administrateur sur le serveur et d’un accès au bureau distant pour résoudre le problème ci-dessus. Si vous n’avez pas accès au serveur, contactez votre fournisseur de services d’hébergement.

(B) Remplacez votredomaine.com par le nom de domaine approprié dans lequel le problème se produit.

Avertissement: Une modification incorrecte du fichier machine.config entraînera des problèmes pour le service ASP.NET sur le serveur.

7
Wai Ha Lee

Je viens de le résoudre, cela pourrait être utile pour les lecteurs en retard.

  • Ouvrez le gestionnaire IIS (ctrl + r inetmgr)
  • Aller à la vue des fonctionnalités de votre site
  • Cliquez sur "Niveaux de confiance .NET"
  • Définissez le niveau de confiance de votre site sur Complet (interne)

OR

Insérez les éléments suivants dans les sites web.config:

<system.web>
        <trust level="Full" />
  </system.web>
0
NJoco