当密码不正确时,如何让rdpy-rdpmitm让客户端重新输入用户名和密码

sun*_*ndq 16 python rdp

我使用rdpy-rdpmitmdemo rdpy来实现rdp代理,但我想在连接到target之前检查密码,让客户端重新输入用户名和密码.我的代码是这样的; 我该如何实现OnReady方法?

class ProxyServer(rdp.RDPServerObserver):
  def __init__(self, controller, target, clientSecurityLevel, rssRecorder):
    """
    @param controller: {RDPServerController}
    @param target: {tuple(ip, port)}
    @param rssRecorder: {rss.FileRecorder} use to record session
    """
    rdp.RDPServerObserver.__init__(self, controller)
    self._target = target
    self._client = None
    self._rss = rssRecorder
    self._clientSecurityLevel = clientSecurityLevel


  def onReady(self):
    """
    @summary:  Event use to inform state of server stack
                First time this event is called is when human client is connected
                Second time is after color depth nego, because color depth nego
                restart a connection sequence
    @see: rdp.RDPServerObserver.onReady
    """
    if self._client is None:
      # try a connection
      domain, username, password = self._controller.getCredentials()
      self._rss.credentials(username, password, domain, self._controller.getHostname())

      width, height = self._controller.getScreen()
      self._rss.screen(width, height, self._controller.getColorDepth())


      if checkPassword(username, password): #password ok
          reactor.connectTCP('127.0.0.1', 3389, ProxyClientFactory(self, width, height, domain, username, password,self._clientSecurityLevel))
      else:
        pass
        #how to make client re-input username and password in this place
Run Code Online (Sandbox Code Playgroud)

Icy*_*yTv 0

我真的不知道您正在使用的库,但是如果连接失败,您不能只测试错误,然后通过以前的代码重试连接,即类似以下内容的内容:

Python 2.x

password = raw_input("Please re-enter your password:")
Run Code Online (Sandbox Code Playgroud)

Python 3.x

password = input("Please re-enter your password")
Run Code Online (Sandbox Code Playgroud)