2012-04-17 17 views
0

WinSSHD仮想アカウントを作成し、私は私のASP.NETのC#のWebアプリケーションのユーザーは、サーバー上の新しい仮想アカウントを作成する方法をしたいと思います。 (Webアプリケーションの各ユーザーには、個別のFTPアカウントが必要な複数のパートナーがあるので、毎回手動で作成するのは便利ではありません)。これらの仮想アカウントには、ルートポイントが別の物理パス。はプログラムで私たちは、SFTPサーバとしてWinSSHDを使用している

現在のところ、私はWinSSHDコントロールパネルでこの種の操作を行う方法しか知りません。これにはAPIがありますか?

答えて

0

私はそれを理解しました。

// This Guid is the uuid of the coclass in WinsshdCfgManip.idl (depends on your WinSSHD version) 
dynamic config = Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("A3E7581A-5182-41C4-9AFD-2DFF07F06167"), server, true)); 

config.SetSite("WinSSHD"); 
config.LockWinsshdSettings(); 
config.LoadWinsshdSettings(); 

config.ProcessInstruction(@"access.virtAccounts.New.virtAccount """ + username + @""""); 
config.ProcessInstruction(@"access.virtAccounts.New.virtPassword.Set """ + password + @""""); 
config.ProcessInstruction(@"access.virtAccounts.New.group ""Virtual Users"""); 
config.ProcessInstruction(@"access.virtAccounts.New.useDefaultWinAccount false"); 
config.ProcessInstruction(@"access.virtAccounts.New.winDomain """ + winDomain + @""""); 
config.ProcessInstruction(@"access.virtAccounts.New.winAccount """ + winAccount + @""""); 
config.ProcessInstruction(@"access.virtAccounts.New.loginAllowed yes"); 
config.ProcessInstruction(@"access.virtAccounts.New.passwordAuth required"); 
config.ProcessInstruction(@"access.virtAccounts.New.permitRemoteAdmin no"); 
config.ProcessInstruction(@"access.virtAccounts.New.mapRemoteHomeDir no"); 
config.ProcessInstruction(@"access.virtAccounts.New.allowSessionJobBreakaway no"); 
config.ProcessInstruction(@"access.virtAccounts.New.permitTerminalShell no"); 
config.ProcessInstruction(@"access.virtAccounts.New.permitExecRequests no"); 
config.ProcessInstruction(@"access.virtAccounts.New.permitSftp yes"); 
config.ProcessInstruction(@"access.virtAccounts.New.sfsMap.useDefaultSfsMap false"); 

// Backslashes in rootPath need to be escaped as \\ for ProcessInstruction 
// E.g.: 
// string rootPath = @"C:\\FTP\\MyFtpFolder"; 
config.ProcessInstruction(@"access.virtAccounts.New.sfsMap.mountPoints.1.realRootPath """ + rootPath + @""""); 

config.ProcessInstruction(@"access.virtAccounts.NewCommit"); 

config.SaveWinsshdSettings(1); 
config.UnlockWinsshdSettings(); 
:私はこのような何かをやってしまいました
関連する問題