2017-08-10 14 views
1

Création d'un compte utilisateur SFTP (non FTP) via le code C#. Est-ce possible de créer des utilisateurs sftp avec mon code? J'utilise le serveur bitvise SSH comme serveur sftp, et le serveur filezilla comme serveur ftp, maintenant je veux créer différents utilisateurs pour mes différents employés afin qu'ils aient tous accès à différents dossiers sur mon serveur et ne puissent pas accéder à chaque autre chemin (dossiers). Peut-on avoir une idée de la création d'utilisateur dans sftp par le code C#?Est-il possible de créer un utilisateur SFTP (non FTP) en utilisant C#? Si c'est alors comment?

+0

Peut-être est utile https://forum.filezilla-project.org/viewtopic.php?t=5228 –

+0

Avez-vous fait des recherches? Googling pour "C# sftp" produit beaucoup de pages utiles. – Kenster

+0

@Kenster: J'ai fait des recherches mais rien que je reçois .. – LGB

Répondre

0

1) Pour faire des fenêtres Bitvise serveur ssh compte

public static int Main(string[] args) 
    { 
     try 
     { 
      var cfg = new CBssCfg726("BssCfg726.BssCfg726"); 
      cfg.SetSite("Bitvise SSH Server"); 
      cfg.LockServerSettings(); 
      cfg.LoadServerSettings(); 

      [email protected] = "Domain_Name"; 
      [email protected] = "Account_Name"; 
      [email protected] = cfg.DefaultYesNo.yes; 
      [email protected](); 
      [email protected]@new.realRootPath = "C:\\Sftp\\User"; 
      [email protected]mit(); 
      cfg.settings.access.winAccountsEx.NewCommit(); 
      cfg.UnlockServerSettings(); 
      cfg.SaveServerSettings(); 


      return 0; 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 

2) Pour rendre compte du serveur ssh Bitvise virtuel

private void AssignPowerSchoolCredentials() 
    { 
     try 
     { 
      var cfg = new CBssCfg726("BssCfg726.BssCfg726"); 
      cfg.SetSite("Bitvise SSH Server");    
      cfg.LoadServerSettings(); 

      [email protected] = "Virtual_Account_name"; 
      [email protected]("Password"); 
      [email protected] = "Virtual Users"; 

      //if already virtAccountsEx then first delete... 
      for (uint i = 0; i < cfg.settings.access.virtAccountsEx.count; i++) 
      { 
       if (cfg.settings.access.virtAccountsEx.GetItem(i).virtAccount == "Virtual_Account_name") 
       { 
        cfg.settings.access.virtAccountsEx.Erase(i); 
       } 
      }     
      [email protected][email protected] = "127.0.0.1"; 
      [email protected][email protected] = 80; 
      [email protected][email protected] = "Default"; 
      [email protected] = cfg.DefaultYesNo.yes; 
      [email protected](); 
      [email protected]@new.sfsMountPath = "/"; 
      [email protected]@new.realRootPath = "Folder_path"; 
      [email protected]mmit(); 
      [email protected].NewCommit(); 
      cfg.settings.access.virtAccountsEx.NewCommit(); 
      cfg.SaveServerSettings(); 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 
+0

Ajoutez également des références pour BssCfg726Lib ou BssCfg721Lib ou etc., quel que soit votre solution. –

+0

ce code doit être exécuté en tant qu'administrateur. – LGB

0

Vous pouvez créer des utilisateurs avec du code C# en modifiant les fichiers de configuration. Cela signifie que vous allez créer/supprimer/mettre à jour les utilisateurs en écrivant dans un fichier.

peut faire quelque chose comme ceci:

try 
{ 
    string hely = @"C:\Program Files (x86)\FileZilla Server\FileZilla Server.xml"; 
    StreamWriter wr = new StreamWriter(hely, false); 
    wr.WriteLine("<FileZillaServer>"); 
    wr.WriteLine("  <Settings>"); 
    wr.WriteLine("  <Item name=\"Admin port\" type=\"numeric\">14147</Item>"); 
    wr.WriteLine(" </Settings>"); 
    wr.WriteLine(" <Groups />"); 
    wr.WriteLine(" <Users>"); 
    wr.WriteLine(" <User Name=\"test\">"); 
    wr.WriteLine("  <Option Name=\"Pass\">test</Option>"); 
    wr.WriteLine("  <Option Name=\"Group\"></Option>"); 
    wr.WriteLine("  <Option Name=\"Bypass server userlimit\">0</Option>"); 
    wr.WriteLine("  <Option Name=\"User Limit\">0</Option>"); 
    wr.WriteLine("  <Option Name=\"IP Limit\">0</Option>"); 
    wr.WriteLine("  <Option Name=\"Enabled\">1</Option>"); 
    wr.WriteLine("  <Option Name=\"Comments\">test</Option>"); 
    wr.WriteLine("  <Option Name=\"ForceSsl\">0</Option>"); 
    wr.WriteLine(" <IpFilter>"); 
    wr.WriteLine("  <Disallowed />"); 
    wr.WriteLine("  <Allowed />"); 
    wr.WriteLine(" </IpFilter>"); 
    wr.WriteLine(" <Permissions>"); 
    wr.WriteLine("  <Permission Dir=\"D:\\FTP_Root\">"); 
    wr.WriteLine("  <Option Name=\"FileRead\">1</Option>"); 
    wr.WriteLine("  <Option Name=\"FileWrite\">1</Option>"); 
    wr.WriteLine("  <Option Name=\"FileDelete\">1</Option>"); 
    wr.WriteLine("  <Option Name=\"FileAppend\">1</Option>"); 
    wr.WriteLine("  <Option Name=\"DirCreate\">1</Option>"); 
    wr.WriteLine("  <Option Name=\"DirDelete\">1</Option>"); 
    wr.WriteLine("  <Option Name=\"DirList\">0</Option>"); 
    wr.WriteLine("  <Option Name=\"DirSubdirs\">1</Option>"); 
    wr.WriteLine("  <Option Name=\"IsHome\">1</Option>"); 
    wr.WriteLine("  <Option Name=\"AutoCreate\">0</Option>"); 
    wr.WriteLine(" </Permission>"); 
    wr.WriteLine(" </Permissions>"); 
    wr.WriteLine("<SpeedLimits DlType=\"0\" DlLimit=\"10\"  ServerDlLimitBypass=\"0\" UlType=\"0\" UlLimit=\"10\"   ServerUlLimitBypass=\"0\">"); 
    wr.WriteLine("    <Download />"); 
    wr.WriteLine("   <Upload />"); 
    wr.WriteLine("  </SpeedLimits>"); 
    wr.WriteLine(" </User>"); 
    wr.WriteLine(" </Users>"); 
    wr.WriteLine("</FileZillaServer>"); 
    wr.Close(); 
    string pathtofilezilla = @"C:\Program Files (x86)\FileZilla Server"; 
    Process.Start("CMD.exe", "/C \"" + pathtofilezilla + "\\FileZilla Server.exe\" /reload-config"); 
} 
catch (Exception ex) 
{ 
    throw ex; 
} 
+0

pouvez-vous s'il vous plaît me montrer le code ou une démo pour cela ..? – LGB

+1

Je pense que vous avez copié réponse à partir de ce lien https://stackoverflow.com/questions/25967290/creating-sftp-or-ftp-user-account-through-c-sharp-code mais ce n'est pas utile pour moi bcuz c'est créé FTP utilisateur non SFTP Utilisateur – LGB