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 :

Exception de sécurité avec CarlosAg.ExcelXmlWriter


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 43
    Par défaut Exception de sécurité avec CarlosAg.ExcelXmlWriter
    Bonjour,

    Je viens vers vous car j'ai un soucis d'utilisation de la librairie CarlosAg.ExcelXmlWriter.

    Je souhaite utiliser cette librairie, car je veux créer des fichiers xls, sans avoir Excel d'installé sur un serveur.

    Lorsque j'execute mon bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim book As Workbook = New Workbook()
    Dim sheet As Worksheet
    Dim row As WorksheetRow
     
    For Each s As String In FileArray
        Dim file_name As String = System.IO.Path.GetFileNameWithoutExtension(s)
     
        sheet = book.Worksheets.Add(FileName)
        row = sheet.Table.Rows.Add()
        row.Cells.Add(New WorksheetCell("Hello World from ASP.NET"))
    Next
     
    book.Save(RepExport + FileName)
    J'ai l'exception suivante sur la ligne book.Save(RepExport + FileName) :

    System.Security.SecurityException: Échec de la demande d'autorisation de type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
    Auriez vous une idée ?

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    j'ai utilisé cette librairie aussi pour générer des fichiers excel depui un serveur et après j'ai découvert NPOI qui génère des fichiers xls mais au format standard pas au format xml

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Salut,

    Je présume que tu essaie soit de sauvegarder ton fichier dans un répertoire protégé (ex: system32) soit dans un répertoire dans lequel l'utilisateur iis n'a pas les droits.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 43
    Par défaut
    Merci pour vos réponse.

    Non justement, justement puisque avant j'utilisais la Excel.application pour créer mon fichier xls dans le même répertoire, sans problème de sécurité.

    Je viens de tester avec la librairie NPOI :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Dim HSSFWorkbookEX As HSSFWorkbook = New HSSFWorkbook()
     
    Dim dsi As DocumentSummaryInformation = PropertySetFactory.CreateDocumentSummaryInformation()
    dsi.Company = "NPOI Team"
    HSSFWorkbookEX.DocumentSummaryInformation = dsi
     
    Dim si As SummaryInformation = PropertySetFactory.CreateSummaryInformation()
    si.Subject = "NPOI SDK Example"
    HSSFWorkbookEX.SummaryInformation = si
     
     
    For Each s As String In FileArray
       Dim file_name As String = System.IO.Path.GetFileNameWithoutExtension(s)
     
       HSSFWorkbookEX.CreateSheet(FileName)
    Next
     
    Dim filetess As FileStream = New FileStream(RepExport + FileName,FileMode.Create)
    HSSFWorkbookEX.Write(filetess)
    filetess.Close()
    Voici le message d'erreur, cette fois ci sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim HSSFWorkbookEX As HSSFWorkbook = New HSSFWorkbook()
    SecurityException: Échec de la demande d'autorisation de type 'System.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
    Je suis maudit ou quoi

  5. #5
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    le gros interets avec Npoi c'est que tu n'as même pas besoin de générer le fichier sur le serveur pour pouvoir le télécharger, tu peux directement envoyer le flux en mémoire vers le client ce qui t'économise le temps de génération du fichier, la place prise par le fichier et les problèmes de droit d'écriture sur le serveur

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 43
    Par défaut
    Je pense que j'ai un problème de sécurité avec le serveur 2008, car sur un serveur 2003 je n'ai pas de problème avec cette dll.

    J'ai l'exception suivante sur la ligne book.Save(RepExport + FileName) en utilisant NPOI :

    System.Security.SecurityException: Échec de la demande d'autorisation de type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

  7. #7
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    moi je copie mon fichier dans un memorystram (exemple en c#)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    MemoryStream ms =new MemoryStream();
     
                // Writing the workbook content to the FileStream...
                workBook.Write(ms);
     
                // Sending the server processed data back to the user computer...
                return ms;
    et une petite fonction que j'ai faite pour télécharger le fichier contenu dans mon memorystream
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    /// <summary>
        /// Fonction qui permet de télécharger un fichier XLS contenu dans un memorystream
        /// </summary>
        /// <param name="fichier">est le nom du fichier à télécharger</param>
        /// <param name="stream">est le contenu du fichier stocké dans un memorystream</param>
        private void telechargementXLS(string fichier,MemoryStream stream)
        {
            // On efface le response
            Response.Clear();
            // On ajoute les entêtes pour le fichier
            Response.ContentType = "application/vnd.ms-excel";
            Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", fichier));
            // On lance le téléchargement
            Response.BinaryWrite(stream.GetBuffer());
            // On ferme le response
            Response.End();
        }

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 43
    Par défaut
    Merci pour ton aide !

    Je me suis trompé, l'erreur je l'ai sur la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim HSSFWorkbookEX As HSSFWorkbook = New HSSFWorkbook()
    C'est à dire, dès la création du Workbook.

    SecurityException: Échec de la demande d'autorisation de type 'System.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
    Je vais voir et me renseigner sur cette dll pour savoir si elle est bien compatible avec un système 64 bits.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 43
    Par défaut
    Bon j'ai recherché sur le site distribuant la librairie NPOI, c'est à dire CodePlex, et j'ai pu lire que dans les pré-requis d'utilisation ils mentionnent :

    medium trust environment in ASP.NET
    Savez vous comment et quoi faire pour paramètrer et rendre la dll utilisable ?

    Merci

  10. #10
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    je crois que c'est au niveau de IIS qu'il faut configurer ça

Discussions similaires

  1. Problème de sécurité avec MS Access
    Par jpduches dans le forum Sécurité
    Réponses: 2
    Dernier message: 13/12/2010, 15h44
  2. [Sécurité] Problème de sécurité avec l'upload
    Par Gwipi dans le forum Langage
    Réponses: 2
    Dernier message: 14/04/2006, 10h54
  3. [Sécurité] Sécurité avec .HTACCESS
    Par BRAUKRIS dans le forum Langage
    Réponses: 3
    Dernier message: 02/04/2006, 00h01
  4. sécurité avec C
    Par chiheb366 dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 14/10/2005, 12h30
  5. Exception 'instruction privilégiée' avec TDLPort
    Par jphi5 dans le forum C++Builder
    Réponses: 21
    Dernier message: 11/11/2003, 16h40

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