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 :

Une autre méthode plus sécuritaire que StreamWriter : sauvegarder le fichier sur un autre serveur


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Points : 25
    Points
    25
    Par défaut Une autre méthode plus sécuritaire que StreamWriter : sauvegarder le fichier sur un autre serveur
    Bonjour,

    J’ai un formulaire : lorsque l’utilisateur le remplit, l’application prendre les informations et crée un fichier data (.csv) et le dépose sur le serveur dans un répertoire où se trouve le site.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    using (System.IO.StreamWriter SW = new System.IO.StreamWriter(Server.MapPath("sauve/form/Data_" + strDate + ".csv")))
    {
     SW.WriteLine(s.FirstName + ";" + s.LastName + ";" + s.Address1 + ";");
     SW.Close();
    }
    En suite j’ai changé le chemin pour mettre le fichier, par système Windows, dans un autre serveur que le serveur de Web :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StreamWriter SW = new StreamWriter(@"\\111.222.1.00\c$\Inetpub\wwwroot\site_toto\ sauve\form \Data_" + strDate + ".csv");
    Au niveau de sécurité, cette méthode n’est pas sûre : en outre, il faut désactiver le firewall pour que cela marche.

    Alors au lieu de déposer le fichier par Windows, j’aimerais bien le mettre par un transfert FTP sur un autre serveur, mais je ne sais pas comment je peux le faire.

    Merci de votre aide.

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    euh, c'est pas parce que tu dois couper ton firewall que c'est pas sûr c'est parce que tu DOIS configurer ton firewall pour autoriser l'écriture. faut pas inverser le problème

    pour le ftp, bah y a des milliers de classes FTP toutes faites sur le net, codeplex, etc. t'as juste à en prendre une
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    Merci M. Morand,

    je vais voir où je peux trouver codeplex...

  4. #4
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    Tu peux nous expliquer pourquoi tu penses que ce serait plus sûr par FTP?
    Sinon, pour envoyer un fichier par FTP, en général, j'utilise ceci:
    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
    22
    23
    24
    public static bool FtpUpload(Uri uri, NetworkCredential credentials, FileInfo fileInfo)
    {
        FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(Path.Combine(uri.AbsoluteUri, fileInfo.Name));
        request.Method = WebRequestMethods.Ftp.UploadFile;
        request.Credentials = credentials;
        request.UseBinary = true;
        request.KeepAlive = false;
        request.UsePassive = true;
     
        byte[] buffer = new byte[2048];
        int block;
     
        using (Stream stream = request.GetRequestStream())
        {
            using (FileStream fs = File.OpenRead(fileInfo.FullName))
            {
                while ((block = fs.Read(buffer, 0, buffer.Length)) > 0)
                {
                    stream.Write(buffer, 0, block);
                }
            }
        }
        return true;
    }
    Ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FtpUpload(new Uri("ftp://hd1.freebox.fr/Disque dur/Enregistrements/"),
        new NetworkCredential("freebox", "000000"),
        new FileInfo(@"C:\temp\test.txt"));
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    Bonjour Immobilis,

    Tu me demandes pourquoi c'est plus sûr par FTP...

    Ce n'est pas moi qui pense ainsi...

    C'est mon admin réseau qui le prétend... Et il ne veut rien savoir pour configurer firewal, autrement qu'il pense. Il ne dit qu'il faut absolument utiliser FTP au lieu d'utiliser système Windows. Pourtant avant lui, j'ai toujours utilisé sans problème.

    Je vais voir comment je peux intégrer ton code dans mon formulaire à Lundi.

    Merci pour les information, bonne journée

  6. #6
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Insiste, demande lui une explication claire et précise de ses raisons.

    Dis-lui que par FTP il y a quand même un port ouvert alors pourquoi pas un autre.

    Dis-lui que
    il faut absolument utiliser FTP au lieu d'utiliser système Windows.
    n'est pas suffisant comme explication et que tu cherches bien évidement à t'instruire. Les comptes Windows sont encore ce qu'il y a de plus sûr.

    Un compte FTP n'est pas fondamentalement différent d'un compte windows. Si tu utilises le protocole FTP, tout tes utilisateurs utiliseront le même compte pour écrire et modifier des fichiers. En général on ne change jamais le mot de passe de ce compte qui a pas mal de pouvoirs. Dis lui qu'il ferait bien d'installer un Active Directory et de te permettre de gérer les comptes de ton application grâce à l'authentification des utilisateurs sur l'AD.

    Mais bon, peut-être qu'il ne comprend rien à ce qu'il fait et que du coup il ne peut rien faire d'autre que d'ouvrir un site FTP...

    Petite question, les serveurs sont sur le même réseau? Ton application est en intranet ou Internet?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    Salut Immobilis,

    tu m'as demandé si les serveurs sont sur le même réseau? Mon application est en intranet ou Internet?

    et voici la réponse : oui sur le même reseau : Intranet

  8. #8
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    Citation Envoyé par PHPDOS Voir le message
    Salut Immobilis,

    tu m'as demandé si les serveurs sont sur le même réseau? Mon application est en intranet ou Internet?

    et voici la réponse : oui sur le même reseau : Intranet
    faire du FTP en intranet?? il est complètement c*n ton admin réseau? C'est plus lourd en:
    - configuration des partages
    - bande passante
    - temps de transfert
    - pas plus sécure (sauf si tu forces un ftp ssl)
    - faut ouvrir des ports particuliers
    - y a pas d'outils qui checkent les droits des FTP du réseau alors pour un partage, si



    @immobilis: s'il utilise IIS, il peut utiliser le FTP avec les comptes Windows. Mais ca change rien au fait que je vois aucune raison valable (et bien au contraire) de choisir le FTP
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  9. #9
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Citation Envoyé par Louis-Guillaume Morand Voir le message
    Mais ca change rien au fait que je vois aucune raison valable (et bien au contraire) de choisir le FTP
    Parce que son admin réseau ne sait pas configurer un parfeu.
    "Winter is coming" (ma nouvelle page d'accueil)

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    Moi non plus, mais je ne suis pas admin...

    Selon lui, il ne faut pas ouvrir le flux entre 2 serveurs...

    Alors comment peux-je faire lui faire apprendre la configuration sur le par feu ?

  11. #11
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    C'est quel systeme d'exploitation? Normalement y'a juste à laisser le parfeu et à activer le partage de fichiers ou si il s'agit d'un vrai serveur, ajouter le role de serveur de fichiers. Ensuite un compte identique sur les deux machines, les bons droits et puis c'est tout...
    "Winter is coming" (ma nouvelle page d'accueil)

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    Serveur Web (où il y a mon site) c'est Windows 2008

    et les fichiers sera transféré vers le serveur Windows 2003


    1--- Donc on ne touche pas le par feu...

    2----activer le partage du fichier sur le répertoire où les fichiers seront crées [si on active le partage de fichiers, ne seront pas-ils, ces fichiers, vulnérable par les intrus ?)



    Que tu veux dire :"jouter le role de serveur de fichiers" ?


    4--- il faut créer un compte identique sur les deux machines

    En suite ? Comment peut-on faire une transfère automatique ? transfère par contrôle cmd ? avec céduleur de Windows ? ???

  13. #13
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    Ok, W2k3 c'est trop facile alors.
    Sur le 2003:
    1. Tu dois avoir un raccourci dans le menu démarrer > outils d'administration > configurer le serveur. Une fenetre s'ouvre cliquer ajouter un role > serveur de fichiers. Cela permet de configurer automatiquement la machine pour activer le service de partage.
    2. Ensuite tu créés un compte avec des droits d'utilisateur.
    3. Tu créés un partage "MonPartage$" sur lequel tu autorise le compte à créer des fichiers. Le dollar sert pour cacher le partage.

    Sur le 2008
    1. Tu créés le même compte (même nom d'utilisateur, même mot de passe) sur le serveur 2008.
    2. Tu executes la ligne de commande pour conférer à ce compte les droits nécessaires pour faire tourner IIS. Euh sinon, je te la donne demain.
    3. Tu configures l'identité du pool d'application ton site web pour utiliser ce compte.
    Ca parait compliqué mais en fait c'est simple.

    Sinon, pour faire de la copie planifiée avec Windows j'utilise un fichier .bat qui execute des commandes DOS pour créer les partages avec NET USE et qui copy avec XCopy.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  14. #14
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Points : 25
    Points
    25
    Par défaut Merci
    Merci Immobilis...

    Ça marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/07/2010, 12h11
  2. Réponses: 1
    Dernier message: 29/07/2010, 12h11
  3. [Math] Méthodes plus rapides que Math.pow ou .exp ?
    Par alexandre1975 dans le forum Langage
    Réponses: 4
    Dernier message: 15/06/2008, 15h53
  4. Méthode plus radicale que UserForm_Layout
    Par Jean-Pierre49 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/11/2007, 14h22
  5. Réponses: 1
    Dernier message: 31/08/2006, 17h28

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