Forum-webmaster
Technique - programmation => Asp / Asp.net / IIS => Message commencé par: phpdos le le 25-09-2009 a 14:54:08

Titre: Une autre méthode plus sécuritaire que StreamWriter et comment peut-on sauvega
Posté par: phpdos le le 25-09-2009 a 14:54:08

Une autre méthode plus sécuritaire que StreamWriter et comment peut-on sauvegarder le fichier sur un autre serveur (asp.net c sharp)

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 .

[size=2]
Code:


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();
}

[/size]


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:
StreamWriter SW = new StreamWriter(@"\\111.222.1.00\c$\Inetpub\wwwroot\site_toto\ sauve\form \Data_" +


.Il faut désactiver le firewall sur serveur 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.
[color=red][size=300]
J’ai un class ! Comment je peux l’intégrer ?[/size][/color]

Le code en cs

Code:
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;

en suite

Code:
FtpUpload(new Uri("ftp:// 000.111.2.33/Inetpub/wwwroot/site_demo/"),
new NetworkCredential("freebox", "000000"),
new FileInfo(@"C:\Data_" + strDate + ".csv"\"));

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();
}


Titre: Re:Une autre méthode plus sécuritaire que StreamWriter et comment peut-on sauv
Posté par: m3z le le 06-10-2011 a 17:30:58

Hello

A priori tu n'as pas besoin de désactiver le firewall mais d'ouvrir les port SMB
soit par défaut les ports 139 & 445 en udp et 138 & 137 en tcp.

Cela dit ce n'est pas terrible comme méthode.
Le transfert FTP est effectivement une solution plus propre.

Je ne vois pas ou est ton problème tu as tout en main :
Tu crées ton fichier dans un répertoire temporaire sur le disque local
Puis tu transmets le fichier grace au code qui tu donnes vers le second serveur.
Il faut bien sûr que le second serveur ai le service FTP actif.

@+



Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.