update protocolo net example conexion c# asp.net .net ftp sftp

protocolo - update file sftp c#



Crear una cuenta de usuario SFTP o FTP a través del código c# (2)

¿Es posible crear usuarios de sftp con mi código? Estoy usando bitvise SSH server como mi servidor sftp, y filezilla server como mi servidor ftp, ahora quiero crear diferentes usuarios para mis diferentes clientes para que todos tengan acceso a diferentes carpetas en mi servidor y no puedan acceda a la ruta de cada uno (carpetas). Puedo usar cualquiera de ellos (sftp o ftp), pero mi prioridad es sftp. ¿Alguien puede tener alguna idea de la creación del usuario en sftp o en ftp por c # code?


Para el servidor FileZilla, puede modificar C:/Program Files (x86)/FileZilla Server/FileZilla Server.xml ( FileZillaServer/Users ) y hacer que el servidor vuelva a cargar la configuración usando:

"FileZilla Server.exe" /reload-config


Tengo la solución y aquí la estoy publicando. Sería útil para otra persona en el futuro:

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