通过c#代码创建SFTP或FTP用户帐户

时间:2014-09-22 05:39:04

标签: c# asp.net .net ftp sftp

这可以通过我的代码创建sftp用户吗?我正在使用bitvise SSH服务器作为我的sftp服务器,而filezilla服务器作为我的ftp服务器,现在我想为不同的客户创建不同的用户,这样他们就可以访问我服务器上的不同文件夹而无法访问访问彼此的路径(文件夹)。   我可以使用其中任何一个(sftp或ftp),但我的优先级是sftp。任何人都可以通过c#代码在sftp或ftp中了解用户创建的内容吗?

2 个答案:

答案 0 :(得分:1)

对于FileZilla服务器,您可以修改C:\Program Files (x86)\FileZilla Server\FileZilla Server.xmlFileZillaServer/Users)并让服务器使用以下命令重新加载配置:

"FileZilla Server.exe" /reload-config

答案 1 :(得分:0)

我得到了解决方案,在这里我发布了它。这将对其他人有所帮助:

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