【发布时间】:2017-01-29 17:09:42
【问题描述】:
有谁知道是否可以使用 SSH.NET 库 (Renci.SshNet) 以编程方式更改 SFTP 站点上的用户密码?无论哪种方式,我都无法找到任何确定的东西。
如果是,我将不胜感激您能提供的任何指针。
【问题讨论】:
标签: c# sftp change-password ssh.net
有谁知道是否可以使用 SSH.NET 库 (Renci.SshNet) 以编程方式更改 SFTP 站点上的用户密码?无论哪种方式,我都无法找到任何确定的东西。
如果是,我将不胜感激您能提供的任何指针。
【问题讨论】:
标签: c# sftp change-password ssh.net
没有。虽然 SSH 协议中有一个 API 可以根据请求更改密码,但 SSH.NET 库并未实现显式请求。
在 SSH.NET 库中,您只能在服务器要求时更改密码。通常,当先前的密码已过期时,服务器会要求更改密码。在 SSH.NET 库中,这个服务器请求被实现为 PasswordExpired 事件。
如果你愿意修改 SSH.NET 库,请参阅PasswordAuthenticationMethod.Session_UserAuthenticationPasswordChangeRequiredReceived 方法。它发送密码更改请求,如下所示:
_session.SendMessage(
new RequestMessagePassword(
ServiceName.Connection, Username, _password, eventArgs.NewPassword))
如果您实现自己的AuthenticationMethod,在Authenticate 方法的实现中直接使用eventArgs.NewPassword 发送RequestMessagePassword,它应该可以满足您的需求。
【讨论】: