IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Problèmes de permissions.


Sujet :

ASP.NET

  1. #1
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut Problèmes de permissions.
    Bonjour à tous,

    J'aimerais utiliser un système de conversion de PDF en Texte dans mon site (qui est un CMS DotNetNuke.
    J'ai trouvé une bibliothèque Pdf2Text sur le net, en C#, impeccable.
    Seulement, lorsque je veux l'intégrer dans mon DNN, j'ai des problème de permission.

    Rien que le fait de déposer les dll dans le bin, il me fait une page d'erreur: :
    System.Security.Policy.PolicyException: Impossible d'acquérir les autorisations requises.
    Je pense qu'il faut rajouter un truc dans le web.config, mais je ne sais pas quoi et ou (j'aimerais ne pas baisser le niveau de sécurité général, si c'est possible).

    Pour infos, c'est la DLL IKVM.Runtime.dll (c'est joint avec PDFBox-0.7.3.dll, ne me demandez pas ce que c'est exactement).

    Pouvez vous m'aider ?

    Merci d'avance.

    David.
    David.

  2. #2
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Bonjour,

    Je pense que le mieux est de consulter la documentation de l'outil, voire de IKVM.

    A défaut, tu peux toujours utiliser l'outil Permissions View Tool, qui te permettra de définir pour une assembly précise quelles sont les autorisations minimales nécessaires à son exécution.

    En espérant t'avoir aidé.

  3. #3
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    Bonjour Nicolas,

    Oui, j'ai vu ça, mais je ne sais pas comment l'utiliser.
    J'ai lu que c'est inclut dans le framework 1.1 (que j'ai installé), mais je ne vois pas de preview.exe dans le répertoire d'installation ".net".
    Et en mode console, "preview" est une commande inconnue.
    De plus, impossible de le trouver sur la toile en appli isolée.

    Peux tu me dire comment faire, STP ?

    Bonne soirée.

    David.
    David.

  4. #4
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    Re....

    Concernant l'installation de IKVM, il y a ça :
    http://sourceforge.net/apps/mediawik...e=Installation

    En fait, à ce que je comprends, il faut l'intégrer dans l'installation du framework ?

    Mais moi, je peux tester ça sur mon site en local, mais à terme, c'est sur l'hébergeur qu'il devra fonctionner... Je ne vais pas demander à mon hébergeur de bricoler la config de son serveur mutualisé.
    Est ce que j'ai bien compris, car ça me semble surprenant que le sDLL ne soient pas autonomes... Je ne sais pas très bien ce qu'est le "Global Assembly Cache".

    David.
    David.

  5. #5
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Bonjour,

    Pour le lien que je t'ai fourni, il date un peu en effet .

    Commençons par le commencement : peux-tu donner plus de détails sur l'exception (surtout le Inner Exception, afin de voir s'il est possible de connaître l'action qui a levé l'exception => on pourra déduire les droits recquis).

    Ensuite, dans quel environnement réalises-tu tes tests ? En local ? Full-trust ? La Dll IKVM est je suppose dans ton répertoire bin ? Tu n'as pas essayé de le mettre dans le GAC ?

    Pour information, le GAC est le Global Assembly Cache. Tu peux voir cela comme le catalogue des assemblies d'un poste/serveur. Pour plus d'infos à ce sujet je t'invite à consulter les nombreux articles / définitions existantes.

    Ensuite pour ton hébergeur, cela dépend si tu es en mutualisé ou dédié. En mutualisé, tu ne peux pas déployer d'assembly dans le GAC. En dédié, tu as la main sur ton serveur et fait ce que tu veux. De plus en mutualisé, certains hébergeur ne propose pas forcément un environnement full-trust (comme Ikoula par exemple).

    Sinon, tu peux toujours essayer d'utiliser Caspol (Code Access Security Policy Tool) pour déterminer les droits manquants à ton assembly comme indiqué sur MSDN.

    Si ce serait ton assembly, tu pourrais aussi, via le code, déterminer quels sont tes droits, comme ceci par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    FileIOPermission fileIoPermission = new FileIOPermission(FileIOPermissionAccess.Write, @"C:\windows\system32");
     
    if (SecurityManager.IsGranted(fileIoPermission))
    {
          //Write Access allowed to your assembly
    }
    else
    {
          //Write permission denied
    }
    Mais bon, ce n'est pas le sujet.

    Bref, essaye déjà cela, indique nous plus d'informations notamment sur l'exception et sur ta configuration et ton environnement.

    En espérant t'avoir aidé.

  6. #6
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    Nicolas,

    Je suis en local, pour mes tests.
    Voici la page d'erreur complete:
    Erreur du serveur dans l'application '/DnnTest'.
    Impossible d'acquérir les autorisations requises.
    Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

    Détails de l'exception: System.Security.Policy.PolicyException: Impossible d'acquérir les autorisations requises.

    Erreur source:

    Une exception non gérée s'est produite lors de l'exécution de la demande Web actuelle. Les informations relatives à l'origine et l'emplacement de l'exception peuvent être identifiées en utilisant la trace de la pile d'exception ci-dessous.

    Trace de la pile:

    [PolicyException: Impossible d'acquérir les autorisations requises.]
    System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Boolean checkExecutionPermission) +7602199
    System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Int32& securitySpecialFlags, Boolean checkExecutionPermission) +57

    [FileLoadException: Impossible de charger le fichier ou l'assembly 'IKVM.Runtime, Version=0.30.0.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58' ou une de ses dépendances. Impossible d'accorder les demandes d'autorisation minimales. (Exception de HRESULT : 0x80131417)]
    System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +0
    System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +43
    System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +127
    System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +142
    System.Reflection.Assembly.Load(String assemblyString) +28
    System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +46

    [ConfigurationErrorsException: Impossible de charger le fichier ou l'assembly 'IKVM.Runtime, Version=0.30.0.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58' ou une de ses dépendances. Impossible d'accorder les demandes d'autorisation minimales. (Exception de HRESULT : 0x80131417)]
    System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +613
    System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +203
    System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +105
    System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +178
    System.Web.Compilation.BuildProvidersCompiler..ctor(VirtualPath configPath, Boolean supportLocalization, String outputAssemblyName) +54
    System.Web.Compilation.CodeDirectoryCompiler.GetCodeDirectoryAssembly(VirtualPath virtualDir, CodeDirectoryType dirType, String assemblyName, StringSet excludedSubdirectories, Boolean isDirectoryAllowed) +8805010
    System.Web.Compilation.BuildManager.CompileCodeDirectory(VirtualPath virtualDir, CodeDirectoryType dirType, String assemblyName, StringSet excludedSubdirectories) +128
    System.Web.Compilation.BuildManager.CompileResourcesDirectory() +31
    System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +304

    [HttpException (0x80004005): Impossible de charger le fichier ou l'assembly 'IKVM.Runtime, Version=0.30.0.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58' ou une de ses dépendances. Impossible d'accorder les demandes d'autorisation minimales. (Exception de HRESULT : 0x80131417)]
    System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() +58
    System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +512
    System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters) +729

    [HttpException (0x80004005): Impossible de charger le fichier ou l'assembly 'IKVM.Runtime, Version=0.30.0.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58' ou une de ses dépendances. Impossible d'accorder les demandes d'autorisation minimales. (Exception de HRESULT : 0x80131417)]
    System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +8886319
    System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +85
    System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +259


    Informations sur la version : Version Microsoft .NET Framework :2.0.50727.3053; Version ASP.NET :2.0.50727.3053
    Et voici mon parametrage web.config:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        <!-- set code access security trust level - this is generally set in the machine.config: Full/High/Medium/Low/Minimal -->
        <trust level="Medium" originUrl=".*" />
        <!-- set debugmode to false for running application -->
        <compilation debug="true" strict="false">
    Si je baisse encore mon niveau trust à "Low", il me dit que le "debug" ne peut pas être autorisé.

    Je regarde comment ajouter ces DLL au GAC, histoire de voir un peu ce qui se passe.
    Je suis en effet en serveur mutualisé.
    David.

  7. #7
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Ok, c'est déjà plus clair.

    As-tu bien ces 4 dll dans ton répertoire bin ? (cf ce billet sur le sujet) :

    • IKVM.GNU.Classpath.dll
    • PDFBox-X.X.X.dll
    • FontBox-X.X.X-dev.dll
    • IKVM.Runtime.dll

    Sinon pour le GAC, tu peux oublier vu que tu utilises un hébergement mutualisé (et heureusement !)

  8. #8
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    Ca a l'air d'être le 13ème travail d'hercule d'ajouter une DLL au GAC: http://www.developpez.net/forums/d37...ement-dll-gac/

    Comment je sais si ma DLL est signée ?
    Je suppose que oui, vu que j'ai une clé et une version dans le message d'erreur:
    IKVM.Runtime, Version=0.30.0.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58
    David.

  9. #9
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    Oui, et d'autres, même, j'ai choppé cette fonctionnalité ici:
    http://www.codeproject.com/KB/string...51&fr=26#xx0xx

    bcmail-jdk14-132.dll
    bcprov-jdk14-132.dll
    FontBox-0.1.0-dev.dll
    IKVM.GNU.Classpath.dll
    IKVM.Runtime.dll
    lucene-core-2.0.0.dll
    lucene-demos-2.0.0.dll
    PDFBox-0.7.3.dll
    David.

Discussions similaires

  1. [SCRIPT WMI]Problèmes de permissions...
    Par zell45 dans le forum Windows
    Réponses: 6
    Dernier message: 09/05/2006, 13h21
  2. problème de permissions avec fonction copy()
    Par jeanfrancois dans le forum Langage
    Réponses: 5
    Dernier message: 30/03/2006, 15h37
  3. problème de permission
    Par zave dans le forum Langage
    Réponses: 2
    Dernier message: 01/03/2006, 21h00
  4. problème de permission entre 2 serveurs
    Par dark-vtec dans le forum JWS
    Réponses: 4
    Dernier message: 14/12/2005, 08h16
  5. Problèmes de permission dans un sricpt perl
    Par Dosseh dans le forum Langage
    Réponses: 4
    Dernier message: 07/10/2005, 16h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo