<doc>
  <assembly>
    <name>Rebex.FileServer</name>
  </assembly>
  <members>
    <member name="T:Rebex.Net.Servers.Binding">
      <summary>
            Represents a binding of a server module to an endpoint.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.Binding.EndPoint">
      <summary>
            Gets the endpoint.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.Binding.Module">
      <summary>
            Gets the module.
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.BindingCollection">
      <summary>
            A collection of server bindings.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.BindingCollection.Count">
      <summary>
            Returns the number of bindings.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.BindingCollection.GetEnumerator">
      <summary>
            Returns an enumerator that iterates through all the bindings in the collection.
            </summary>
      <returns>An enumerator that can be used to iterate through the collection.</returns>
    </member>
    <member name="M:Rebex.Net.Servers.BindingCollection.GetBindings(System.Net.EndPoint)">
      <summary>
            Returns a collection of bindings for the specified endpoint.
            </summary>
      <param name="endPoint">Endpoint.</param>
      <returns>A collection of bindings.</returns>
    </member>
    <member name="M:Rebex.Net.Servers.BindingCollection.GetBindings(System.Int32)">
      <summary>
            Returns a collection of bindings for the specified port.
            </summary>
      <param name="port">Port.</param>
      <returns>A collection of bindings.</returns>
    </member>
    <member name="M:Rebex.Net.Servers.BindingCollection.GetBindings(System.Net.IPAddress)">
      <summary>
            Returns a collection of bindings for the specified address.
            </summary>
      <param name="address">Address.</param>
      <returns>A collection of bindings.</returns>
    </member>
    <member name="M:Rebex.Net.Servers.BindingCollection.GetBindings(Rebex.Net.Servers.Core.ServerModule)">
      <summary>
            Returns a collection of bindings for the specified module.
            </summary>
      <param name="module">Server module.</param>
      <returns>A collection of bindings.</returns>
    </member>
    <member name="T:Rebex.Net.Servers.Core.DiffieHellmanParametersCache">
      <summary>
            Security parameters.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.Core.DiffieHellmanParametersCache.#ctor">
      <summary>
            Initializes a new instance of SshParameters with default parameters.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.Core.DiffieHellmanParametersCache.SetDiffieHellmanKeySizeRange(System.Int32,System.Int32)">
      <summary>
            Sets the allowed key size range for Diffie-Hellman keys used during SSH negotiation. Only used by server-side SSH.
            </summary>
      <param name="minKeySize">Minumum allowed key size.</param>
      <param name="maxKeySize">Maximum allowed key size.</param>
    </member>
    <member name="M:Rebex.Net.Servers.Core.DiffieHellmanParametersCache.GetDiffieHellmanKeySizeRange(System.Int32@,System.Int32@)">
      <summary>
            Gets the allowed key size range for Diffie-Hellman keys used during SSH negotiation. Only used by server-side SSH.
            </summary>
      <param name="minKeySize">Minumum allowed key size.</param>
      <param name="maxKeySize">Maximum allowed key size.</param>
    </member>
    <member name="M:Rebex.Net.Servers.Core.DiffieHellmanParametersCache.IsSupportedKeySize(System.Int32)">
      <summary>
            Determines whether the key cache supports keys of the specified size.
            </summary>
      <param name="keySize">Key size.</param>
      <returns>True if the key size is supported; false otherwise.</returns>
    </member>
    <member name="M:Rebex.Net.Servers.Core.DiffieHellmanParametersCache.GetSupportedKeySizes(System.Int32)">
      <summary>
            Returns a list of supported key sizes.
            </summary>
      <returns>List of supported key sizes.</returns>
    </member>
    <member name="M:Rebex.Net.Servers.Core.DiffieHellmanParametersCache.GetDiffieHellmanParameters(System.Int32)">
      <summary>
            Gets one of Diffie-Hellman parameters corresponding to the specified key size. Only used by server-side SSH.
            </summary>
      <param name="keySize">Key size.</param>
      <returns>Diffie-Hellman parameters.</returns>
      <remarks>
            If no parameters are found in the cache, they are generated. This can be quite slow for large key sizes.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Servers.Core.DiffieHellmanParametersCache.Clear">
      <summary>
            Clears Diffie-Hellman parameters cache. Only used by server-side SSH.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.Core.DiffieHellmanParametersCache.Add(Rebex.Security.Cryptography.DiffieHellmanParameters)">
      <summary>
            Adds Diffie-Hellman parameters to parameters cache. Only used by server-side SSH.
            </summary>
      <param name="parameters">Diffie-Hellman parameters.</param>
    </member>
    <member name="T:Rebex.Net.Servers.Core.Server">
      <summary>
            Represents the base class for servers. In most cases, use <see cref="T:Rebex.Net.Servers.FileServer" /> instead.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.Core.Server.#ctor">
      <summary>
            Creates an instance of a generic server.
            </summary>
    </member>
    <member name="E:Rebex.Net.Servers.Core.Server.PreAuthentication">
      <summary>
            Occurs when client authentication is about to start.
            </summary>
    </member>
    <member name="E:Rebex.Net.Servers.Core.Server.Authentication">
      <summary>
            Occurs when client is being authenticated.
            </summary>
    </member>
    <member name="E:Rebex.Net.Servers.Core.Server.Connecting">
      <summary>
            Occurs when a client is connecting.
            </summary>
    </member>
    <member name="E:Rebex.Net.Servers.Core.Server.Disconnected">
      <summary>
            Occurs when a client has disconnected.
            </summary>
    </member>
    <member name="E:Rebex.Net.Servers.Core.Server.ErrorOccurred">
      <summary>
            Occurs when an error occurs while processing requests.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.Core.Server.LogWriter">
      <summary>
            Gets or sets the log writer used by this object.
            </summary>
      <value>Log writer.</value>
    </member>
    <member name="P:Rebex.Net.Servers.Core.Server.IsRunning">
      <summary>
            Gets a value indicating whether the server is currently running.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.Core.Server.Settings">
      <summary>
            Gets server settings.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.Core.Server.Users">
      <summary>
            Gets a collection of users. Provides a simple user database which is used by default when no custom authentication has been defined.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.Core.Server.Keys">
      <summary>
            Gets a collection of server keys.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.Core.Server.Modules">
      <summary>
            Gets an enumerator for currently bound modules.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.Core.Server.Bindings">
      <summary>
            Gets a read-only collection of server bindings.
            </summary>
      <remarks>
            Use one of the <see cref="M:Rebex.Net.Servers.Core.Server.Bind(System.Net.IPEndPoint,Rebex.Net.Servers.Core.ServerModule)">Bind</see> and <see cref="M:Rebex.Net.Servers.Core.Server.Unbind(System.Net.IPEndPoint)">Unbind</see> methods to add or remove a binding.
            </remarks>
    </member>
    <member name="P:Rebex.Net.Servers.Core.Server.Sessions">
      <summary>
            Gets an enumerator for currently active sessions.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.Core.Server.Start">
      <summary>
            Starts the server.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.Core.Server.Stop">
      <summary>
            Stops the server.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.Core.Server.Dispose">
      <summary>
            Disposes the server object, releasing all listeners and sessions.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.Core.Server.Bind(Rebex.Net.Servers.Core.ServerModule)">
      <summary>
            Binds the specified module to its default port on all network interfaces.
            </summary>
      <param name="module">Module to bind.</param>
    </member>
    <member name="M:Rebex.Net.Servers.Core.Server.Bind(System.Int32,Rebex.Net.Servers.Core.ServerModule)">
      <summary>
            Binds the specified module to the specified port on all network interfaces.
            </summary>
      <param name="port">Port to which to bind the module.</param>
      <param name="module">Module to bind.</param>
    </member>
    <member name="M:Rebex.Net.Servers.Core.Server.Bind(System.Net.IPEndPoint,Rebex.Net.Servers.Core.ServerModule)">
      <summary>
            Binds the specified module to the specified endpoint.
            </summary>
      <param name="endPoint">Endpoint to which to bind the module.</param>
      <param name="module">Module to bind.</param>
    </member>
    <member name="M:Rebex.Net.Servers.Core.Server.Unbind(Rebex.Net.Servers.Core.ServerModule)">
      <summary>
            Unbinds the specified module from all endpoints.
            </summary>
      <param name="module">Module to unbind.</param>
    </member>
    <member name="M:Rebex.Net.Servers.Core.Server.Unbind(System.Net.IPEndPoint)">
      <summary>
            Unbinds all modules bound to the specified endpoint.
            </summary>
      <param name="endPoint">Endpoint to unbind.</param>
    </member>
    <member name="M:Rebex.Net.Servers.Core.Server.Unbind(System.Net.IPAddress)">
      <summary>
            Unbinds all modules bound to the specified address.
            </summary>
      <param name="address">Address to unbind.</param>
    </member>
    <member name="M:Rebex.Net.Servers.Core.Server.Unbind(System.Int32)">
      <summary>
            Unbinds all modules bound to the specified port.
            </summary>
      <param name="port">Port to unbind.</param>
    </member>
    <member name="M:Rebex.Net.Servers.Core.Server.Unbind">
      <summary>
            Unbinds all modules.
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.Core.ServerModule">
      <summary>
            Represents a server module implementing a protocol.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.Core.ServerModule.Name">
      <summary>
            Gets module name.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.Core.ServerModule.#ctor(System.String)">
      <summary>
            Creates a new instance of base server module class with the specified name.
            </summary>
      <param name="name" />
    </member>
    <member name="M:Rebex.Net.Servers.Core.ServerModule.GetDefaultPort">
      <summary>
            Returns a default TCP port used by this module.
            </summary>
      <returns>Default TCP port.</returns>
    </member>
    <member name="M:Rebex.Net.Servers.Core.ServerModule.CreateHost(Rebex.Net.Servers.Core.Server)">
      <summary>
            Creates a module host for this module to be used by the specified server.
            </summary>
      <param name="server">Server that will use the module host.</param>
      <returns>Module host for this module.</returns>
    </member>
    <member name="T:Rebex.Net.Servers.Core.ServerModuleHost">
      <summary>
            Represents a server module host. Used by hostable modules such as SSH subsystems.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.Core.ServerModuleHost.#ctor(Rebex.Net.Servers.Core.Server)">
      <summary>
            Creates a new instance of module host.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.Core.ServerModuleHost.Add(Rebex.Net.Servers.Core.ServerModule)">
      <summary>
            Add the specified module to this host.
            </summary>
      <param name="module">Module to add.</param>
    </member>
    <member name="M:Rebex.Net.Servers.Core.ServerModuleHost.Remove(Rebex.Net.Servers.Core.ServerModule)">
      <summary>
            Remove the specified module from this host.
            </summary>
      <param name="module">Module to remove.</param>
    </member>
    <member name="M:Rebex.Net.Servers.Core.ServerModuleHost.OnAccepted(System.Net.Sockets.Socket)">
      <summary>
            Handles accepted connections.
            </summary>
      <param name="socket">Connection with the client.</param>
    </member>
    <member name="M:Rebex.Net.Servers.Core.ServerModuleHost.Accept(System.Net.Sockets.Socket)">
      <summary>
            Starts handling accepted connection.
            </summary>
      <param name="socket">Connection with the client.</param>
    </member>
    <member name="M:Rebex.Net.Servers.Core.ServerModuleHost.Dispose">
      <summary>
            Disposes the server module host.
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.Core.ServerSettings">
      <summary>
            File server settings.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.Core.ServerSettings.AllowedAuthenticationMethods">
      <summary>
            Gets or sets authentication methods that server users can use by default.
            This can be overriden by <see cref="E:Rebex.Net.Servers.Core.Server.PreAuthentication" /> event handler.
            Please note that authentication methods must be enabled at the SSH level
            using <see cref="P:Rebex.Net.Servers.FileServer.Settings" /> / <see cref="P:Rebex.Net.SshParameters.AuthenticationMethods" /> as well.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.Core.ServerSettings.MaxAuthenticationAttempts">
      <summary>
            Gets or sets maximum number of authentication retry attempts on a single session.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.Core.ServerSettings.MaxAuthenticationDuration">
      <summary>
            Gets or sets maximum duration of SSH authentication (in seconds) before the session is closed by the server.
            </summary>
      <remarks>
            Setting the value to 0 or -1 disables closing of unauthenticated sessions.
            Minimum allowed duration is 60 seconds.
            </remarks>
    </member>
    <member name="P:Rebex.Net.Servers.Core.ServerSettings.Banner">
      <summary>
            Gets or sets the banner message announced to the client before authentication.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.Core.ServerSettings.KeepSessionsAlive">
      <summary>
            Gets or sets a value indicating whether to keep active sessions running when the server is stopped.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.Core.ServerSettings.MaxSessionTransferredBytes">
      <summary>
            Gets or sets maximum number of bytes transferred during a session. When this value is reached, a session renegotiation occurs.
            </summary>
      <remarks>
            Setting the value to 0 or -1 disables session renegotiation based on bytes transferred.
            Minimum allowed number of bytes is 16 MB. Recommended value is 1 GB.
            </remarks>
    </member>
    <member name="P:Rebex.Net.Servers.Core.ServerSettings.MaxSessionDuration">
      <summary>
            Gets or sets maximum duration of a session (in seconds). When this duration expires, a session renegotiation occurs.
            </summary>
      <remarks>
            Setting the value to 0 or -1 disables session renegotiation based on duration.
            Minimum allowed duration is 300 seconds. Recommended value is 86400 (1 day).
            </remarks>
    </member>
    <member name="P:Rebex.Net.Servers.Core.ServerSettings.KeepAlivePeriod">
      <summary>
            Gets or sets keep-alive period (in seconds). If the session has been inactive for the specified period, a a keep-alive packet is send to ensure it stays active.
            </summary>
      <remarks>
            Setting the value to 0 or -1 disables keep-alive packets.
            Minimum allowed period is 30 seconds.
            </remarks>
    </member>
    <member name="P:Rebex.Net.Servers.Core.ServerSettings.MaxIdleDuration">
      <summary>
            Gets or sets maximum duration of an idle session (in seconds) before it is closed by the server.
            </summary>
      <remarks>
            Setting the value to 0 or -1 disables closing idle sessions.
            Minimum allowed duration is 30 seconds.
            </remarks>
    </member>
    <member name="P:Rebex.Net.Servers.Core.ServerSettings.IgnoreKeepAlive">
      <summary>
            Gets or sets a value indicating whether keep-alive packets are ignored
            when determining whether the client session has been idle.
            </summary>
      <remarks>When set to 'true', client is considered idle if no data has been transferred
            for a period specified by <see cref="P:Rebex.Net.Servers.Core.ServerSettings.MaxIdleDuration" />.</remarks>
    </member>
    <member name="P:Rebex.Net.Servers.Core.ServerSettings.MaxPendingConnectionsQueueLength">
      <summary>
            Specifies the maximum length of the pending connections queue.
            </summary>
      <remarks>Default value is 16.</remarks>
    </member>
    <member name="P:Rebex.Net.Servers.Core.ServerSettings.ReceiveBufferSize">
      <summary>
            Gets or sets a value (in bytes) that specifies the size of the buffer for incoming data.
            </summary>
      <value>
            Default value is null, which implies the default buffer size.
            </value>
    </member>
    <member name="P:Rebex.Net.Servers.Core.ServerSettings.SendBufferSize">
      <summary>
            Gets or sets a value (in bytes) that specifies the size of the buffer for outgoing data. 
            </summary>
      <value>
            Default value is null, which implies the default buffer size.
            </value>
    </member>
    <member name="T:Rebex.Net.Servers.Core.SshSubsystemModule">
      <summary>
            Represents a generic SSH subsystem module.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.Core.SshSubsystemModule.SubsystemName">
      <summary>
            Gets the name of SSH subsystem implemented by this module.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.Core.SshSubsystemModule.Protocol">
      <summary>
            Gets file transfer protocol implemented by this module.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.Core.SshSubsystemModule.#ctor(System.String,System.String)">
      <summary>
            Creates a new instance of SSH subsystem module.
            </summary>
      <param name="name">Module name.</param>
      <param name="subsystemName">SSH subsystem name.</param>
    </member>
    <member name="M:Rebex.Net.Servers.Core.SshSubsystemModule.GetDefaultPort">
      <summary>
            Returns a default TCP port used by this module.
            </summary>
      <returns>Default TCP port.</returns>
    </member>
    <member name="M:Rebex.Net.Servers.Core.SshSubsystemModule.CreateHost(Rebex.Net.Servers.Core.Server)">
      <summary>
            Creates a module host for this module to be used by the specified server.
            </summary>
      <param name="server">Server that will use the module host.</param>
      <returns>Module host for this module.</returns>
    </member>
    <member name="T:Rebex.Net.Servers.Core.SftpModule">
      <summary>
            Represents an SFTP subsystem module.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.Core.SftpModule.#ctor">
      <summary>
            Creates a new instance of the SFTP module.
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.Core.ShellModule">
      <summary>
            Represents a virtual shell subsystem module.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.Core.ShellModule.#ctor">
      <summary>
            Creates a new instance of the shell module.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.Core.ShellModule.#ctor(System.String)">
      <summary>
            Creates a new instance of the shell module with a custom subsystem name
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.Core.TunnelingModule">
      <summary>
            Represents a tunneling module.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.Core.TunnelingModule.#ctor">
      <summary>
            Creates a new instance of the tunneling module.
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.Core.UserCollection`1">
      <summary>
            Provides a simple default user database that is used when no custom authentication has been defined.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.Core.UserCollection`1.Add(`0)">
      <summary>
            Adds a user to the collection.
            </summary>
      <param name="user">User to add.</param>
    </member>
    <member name="M:Rebex.Net.Servers.Core.UserCollection`1.Clear">
      <summary>
            Removes all users from the collection.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.Core.UserCollection`1.Item(System.String)">
      <summary>
            Gets a ServerUser with the specified userName (or null if not found).
            </summary>
      <param name="userName">UserName of the user to get.</param>
      <returns>A ServerUser (or null if not found).</returns>
    </member>
    <member name="M:Rebex.Net.Servers.Core.UserCollection`1.Contains(System.String)">
      <summary>
            Returns a value indicating whether the collection contains a user with the specified name.
            </summary>
      <param name="userName">User name.</param>
      <returns>True if yes.</returns>
    </member>
    <member name="M:Rebex.Net.Servers.Core.UserCollection`1.Contains(`0)">
      <summary>
            Returns a value indicating whether the collection contains a specified user.
            </summary>
      <param name="user">User.</param>
      <returns>True if yes.</returns>
    </member>
    <member name="P:Rebex.Net.Servers.Core.UserCollection`1.Count">
      <summary>
            Returns the number of users in the collection.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.Core.UserCollection`1.Remove(System.String)">
      <summary>
            Removes the user with the specified name from the collection.
            </summary>
      <param name="userName">Name of user to remove.</param>
      <returns>True if removed.</returns>
    </member>
    <member name="M:Rebex.Net.Servers.Core.UserCollection`1.Remove(`0)">
      <summary>
            Removes the specified user from the collection.
            </summary>
      <param name="user">User to remove.</param>
      <returns>True if removed.</returns>
    </member>
    <member name="M:Rebex.Net.Servers.Core.UserCollection`1.GetEnumerator">
      <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
      <returns>Enumerator.</returns>
    </member>
    <member name="T:Rebex.Net.Servers.AuthenticationMethods">
      <summary>
            User authentication method.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.AuthenticationMethods.None">
      <summary>
            No authentication method.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.AuthenticationMethods.Password">
      <summary>
            Password authentication.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.AuthenticationMethods.PublicKey">
      <summary>
            Public key authentication.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.AuthenticationMethods.External">
      <summary>
            External authentication.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.AuthenticationMethods.Any">
      <summary>
            Allow any authentication method.
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.AuthenticationBaseEventArgs">
      <summary>
            Base class for <see cref="T:Rebex.Net.Servers.PreAuthenticationEventArgs" /> and <see cref="T:Rebex.Net.Servers.AuthenticationEventArgs" />.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.AuthenticationBaseEventArgs.Session">
      <summary>
            Gets server session.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.AuthenticationBaseEventArgs.UserName">
      <summary>
            Gets the user name of the client trying to authenticate.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.AuthenticationBaseEventArgs.ServerEndPoint">
      <summary>
            Gets the server-side endpoint of the client's connection.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.AuthenticationBaseEventArgs.ServerAddress">
      <summary>
            Gets the server-side IP address of the client's connection.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.AuthenticationBaseEventArgs.ClientEndPoint">
      <summary>
            Gets the client-side endpoint of the client's connection.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.AuthenticationBaseEventArgs.ClientAddress">
      <summary>
            Gets the client's IP address.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.AuthenticationBaseEventArgs.ClientSoftwareIdentifier">
      <summary>
            Gets identifier of the client software.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.AuthenticationBaseEventArgs.Users">
      <summary>
            Returns <see cref="P:Rebex.Net.Servers.Core.Server.Users">Users</see> collection on the server authenticating the request.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.AuthenticationBaseEventArgs.Context">
      <summary>
            An optional custom object representing the session context.
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.PreAuthenticationEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.Net.Servers.Core.Server.PreAuthentication">Authentication</see> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.PreAuthenticationEventArgs.AllowedMethods">
      <summary>
            Indicates which methods are allowed to be used.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.PreAuthenticationEventArgs.AcceptedMethods">
      <summary>
            Indicates which methods were accepted by the event handler.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.PreAuthenticationEventArgs.Reject">
      <summary>
            Reject authentication request for this user.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.PreAuthenticationEventArgs.Accept(Rebex.Net.Servers.AuthenticationMethods)">
      <summary>
            Accept authentication request for this user and allow the specified authentication methods.
            </summary>
      <param name="methods">Accepted authentication methods.</param>
    </member>
    <member name="M:Rebex.Net.Servers.PreAuthenticationEventArgs.Accept(Rebex.Net.Servers.AuthenticationMethods,System.Object)">
      <summary>
            Accept authentication request for this user and allow the specified authentication methods.
            </summary>
      <param name="methods">Accepted authentication methods.</param>
      <param name="context">An optional custom object representing session context.</param>
    </member>
    <member name="M:Rebex.Net.Servers.PreAuthenticationEventArgs.Accept(Rebex.Net.Servers.AuthenticationMethods[])">
      <summary>
            Accept authentication request for this user and allow the specified authentication methods.
            </summary>
      <param name="methods">Accepted authentication methods.</param>
    </member>
    <member name="M:Rebex.Net.Servers.PreAuthenticationEventArgs.AcceptWithoutAuthentication(Rebex.Net.Servers.ServerUser)">
      <summary>
            Accept the client as the specified user <em>without further authentication</em> (!).
            </summary>
      <param name="user">An object representing the user.</param>
    </member>
    <member name="M:Rebex.Net.Servers.PreAuthenticationEventArgs.AcceptWithoutAuthentication(Rebex.Net.Servers.ServerUser,System.Object)">
      <summary>
            Accept the client as the specified user <em>without further authentication</em> (!) and assign the specified custom tag object.
            </summary>
      <param name="user">An object representing the user.</param>
      <param name="context">An optional custom object representing session context.</param>
    </member>
    <member name="T:Rebex.Net.Servers.AuthenticationEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.Net.Servers.Core.Server.Authentication">Authentication</see> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.AuthenticationEventArgs.Password">
      <summary>
            Gets the password if available; or null reference.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.AuthenticationEventArgs.Key">
      <summary>
            Gets the user public key if available; or null reference.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.AuthenticationEventArgs.PartiallyAccepted">
      <summary>
            Indicates whether a different kind of credential has already been partially accepted for this authentication session.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.AuthenticationEventArgs.Accept(Rebex.Net.Servers.ServerUser)">
      <summary>
            Accept the client as the specified user.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.AuthenticationEventArgs.Accept(Rebex.Net.Servers.ServerUser,System.Object)">
      <summary>
            Accept the client as the specified user and assign the specified custom tag object.
            </summary>
      <param name="user">An object representing the user.</param>
      <param name="context">An optional custom object representing session context.</param>
    </member>
    <member name="M:Rebex.Net.Servers.AuthenticationEventArgs.AcceptPartially">
      <summary>
            Accepts the supplied credential but request subsequent authentication using another kind of credential.
            </summary>
      <remarks>
            Use this to implement authentication consisting of both password authentication and public key authentication.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Servers.AuthenticationEventArgs.AcceptPartially(System.Object)">
      <summary>
            Accepts the supplied credential but request subsequent authentication using another kind of credential.
            </summary>
      <param name="context">An optional custom object representing session context.</param>
      <remarks>
            Use this to implement authentication consisting of both password authentication and public key authentication.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Servers.AuthenticationEventArgs.Reject">
      <summary>
            Reject the client.
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.ErrorEventArgs">
      <summary>
            Provides data for the <see cref="E:Rebex.Net.Servers.Core.Server.ErrorOccurred">ErrorOccurred</see> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ErrorEventArgs.Session">
      <summary>
            Gets server session.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ErrorEventArgs.SessionId">
      <summary>
            Gets session ID.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ErrorEventArgs.ModuleType">
      <summary>
            Gets module type.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ErrorEventArgs.Error">
      <summary>
            Gets the error.
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.DisconnectedEventArgs">
      <summary>
            Provides data for the <see cref="E:Rebex.Net.Servers.Core.Server.Disconnected">Disconnected</see> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.DisconnectedEventArgs.Session">
      <summary>
            Gets server session.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.DisconnectedEventArgs.User">
      <summary>
            Gets the authenticated user of this session, if available.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.DisconnectedEventArgs.ClientAddress">
      <summary>
            Gets the client's IP address.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.DisconnectedEventArgs.ClientEndPoint">
      <summary>
            Gets the client-side endpoint of the client's connection.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.DisconnectedEventArgs.ServerAddress">
      <summary>
            Gets the server-side IP address of the client's connection.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.DisconnectedEventArgs.ServerEndPoint">
      <summary>
            Gets the server-side endpoint of the client's connection.
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.ConnectingEventArgs">
      <summary>
            Provides data for the <see cref="E:Rebex.Net.Servers.Core.Server.Connecting">Connecting</see> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ConnectingEventArgs.ClientAddress">
      <summary>
            Gets the client's IP address.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ConnectingEventArgs.ClientEndPoint">
      <summary>
            Gets the client-side endpoint of the client's connection.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ConnectingEventArgs.ServerAddress">
      <summary>
            Gets the server-side IP address of the client's connection.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ConnectingEventArgs.ServerEndPoint">
      <summary>
            Gets the server-side endpoint of the client's connection.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ConnectingEventArgs.Accept">
      <summary>
            Gets or sets a value indicating whether to accept a new session.
            </summary>
      <value>True to accept the session; false to reject it.</value>
      <remarks>Default is true.</remarks>
    </member>
    <member name="P:Rebex.Net.Servers.ConnectingEventArgs.Context">
      <summary>
            An optional custom object representing the session context.
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.ShellCommandEventArgs">
      <summary>
            Provides data for the <see cref="E:Rebex.Net.Servers.FileServer.ShellCommand">ShellCommand</see> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ShellCommandEventArgs.SubsystemName">
      <summary>
            Returns subsystem name (or null if using the default shell subsystem).
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ShellCommandEventArgs.Session">
      <summary>
            Gets server session.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ShellCommandEventArgs.User">
      <summary>
            User on behalf of whom the command is being executed.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ShellCommandEventArgs.Command">
      <summary>
            Gets the name of the command to be executed.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ShellCommandEventArgs.Arguments">
      <summary>
            Gets the arguments of the command to be executed.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ShellCommandEventArgs.RawArguments">
      <summary>
            Gets the arguments of the command in raw unparsed format.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ShellCommandEventArgs.Action">
      <summary>
            Gets or sets a delegate to run the specified command.
            </summary>
      <remarks>
            Use this for commands that need to read from the console or take a long time to execute.
            </remarks>
    </member>
    <member name="P:Rebex.Net.Servers.ShellCommandEventArgs.ExitCode">
      <summary>
            Gets or sets the exit code. Only used for commands processed inside the event handler.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.ShellCommandEventArgs.Write(System.Object)">
      <summary>
            Writes the text representation of the specified object to the console.
            </summary>
      <param name="value">The value to write.</param>
    </member>
    <member name="M:Rebex.Net.Servers.ShellCommandEventArgs.WriteLine(System.Object)">
      <summary>
            Writes the text representation of the specified object to the console, followed by an end-of-line sequence.
            </summary>
      <param name="value">The value to write.</param>
    </member>
    <member name="M:Rebex.Net.Servers.ShellCommandEventArgs.Write(System.String,System.Object[])">
      <summary>
            Writes the text representation of the specified array of objects to the remote console
            using the specified format information.
            </summary>
      <param name="format">A format string.</param>
      <param name="args">An array of objects to write using the specified format.</param>
    </member>
    <member name="M:Rebex.Net.Servers.ShellCommandEventArgs.WriteLine(System.String,System.Object[])">
      <summary>
            Writes the text representation of the specified array of objects to the remote console
            using the specified format information, followed by an end-of-line sequence.
            </summary>
      <param name="format">A format string.</param>
      <param name="args">An array of objects to write using the specified format.</param>
    </member>
    <member name="M:Rebex.Net.Servers.ShellCommandEventArgs.WriteLine">
      <summary>
            Writes an end-of-line sequence to the remote console.
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.FileServerProtocol">
      <summary>
            Specifies a protocol (module) to be used with <see cref="T:Rebex.Net.Servers.FileServer" />.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.FileServerProtocol.Sftp">
      <summary>
            SFTP protocol.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.FileServerProtocol.Shell">
      <summary>
            Virtual shell for SSH remote shell or for SCP protocol.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.FileServerProtocol.Tunneling">
      <summary>
            SSH outgoing tunneling (port forwarding)
            or incoming tunneling (when <see cref="P:Rebex.Net.Servers.FileServerSettings.EnableReverseTunneling" /> is set).
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.ShellType">
      <summary>
            Specifies virtual shell type.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.ShellType.Default">
      <summary>
            Default shell type (determined by server module).
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.ShellType.Empty">
      <summary>
            Customizable shell. Only provides an "exit" command by default.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.ShellType.Scp">
      <summary>
            Simple shell that provides basic commands used by SCP clients.
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.FileServer">
      <summary>
            Implements the SFTP/SSH server.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.FileServer.#ctor">
      <summary>
            Initializes a new instance of this object.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServer.Settings">
      <summary>
            Gets server settings.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServer.Users">
      <summary>
            Gets a user collection that provide a simple default user database which is used when no custom authentication has been defined.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.FileServer.CreateModuleHost(Rebex.Net.Servers.FileServerProtocol[])">
      <summary>
            Creates SSH server module host.
            </summary>
      <returns>SSH server module host.</returns>
    </member>
    <member name="M:Rebex.Net.Servers.FileServer.Bind(Rebex.Net.Servers.FileServerProtocol)">
      <summary>
            Binds the specified protocol to its default port on all network interfaces.
            </summary>
      <param name="module">Module to bind.</param>
    </member>
    <member name="M:Rebex.Net.Servers.FileServer.Bind(System.Int32,Rebex.Net.Servers.FileServerProtocol)">
      <summary>
            Binds the specified protocol to the specified port on all network interfaces.
            </summary>
      <param name="port">Port to which to bind the module.</param>
      <param name="module">Module to bind.</param>
    </member>
    <member name="M:Rebex.Net.Servers.FileServer.Bind(System.Net.IPEndPoint,Rebex.Net.Servers.FileServerProtocol)">
      <summary>
            Binds the specified protocol to the specified endpoint.
            </summary>
      <param name="endPoint">Endpoint to which to bind the module.</param>
      <param name="module">Module to bind.</param>
    </member>
    <member name="E:Rebex.Net.Servers.FileServer.FileDownloaded">
      <summary>
            Occurs after a file (or a part of a file) has been downloaded.
            </summary>
    </member>
    <member name="E:Rebex.Net.Servers.FileServer.FileUploaded">
      <summary>
            Occurs after a file (or a part of a file) has been uploaded.
            </summary>
    </member>
    <member name="E:Rebex.Net.Servers.FileServer.PathAccessAuthorization">
      <summary>
            Occurs when path access authorization is required.
            </summary>
    </member>
    <member name="E:Rebex.Net.Servers.FileServer.ShellCommand">
      <summary>
            Occurs when a shell command is executed.
            </summary>
    </member>
    <member name="E:Rebex.Net.Servers.FileServer.TunnelRequested">
      <summary>
            Occurs when a tunnel is requested.
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.FileServerUserCollection">
      <summary>
            Provides a simple default user database that is used when no custom authentication has been defined.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.FileServerUserCollection.Add(System.String,System.String)">
      <summary>
            Adds a new file server user with the specified password.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <returns>An instance of the newly-created user.</returns>
      <remarks>
            The password is one-way transformed to a SHA-256 hash with a random salt value.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Servers.FileServerUserCollection.Add(System.String,System.String,System.String)">
      <summary>
            Adds a new file server user with the specified password and their virtual filesystem based at the specified path.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <param name="physicalRootPath">The placement of the virtual root of the user.</param>
      <returns>An instance of the newly-created user.</returns>
      <remarks>
            The password is one-way transformed to a SHA-256 hash with a random salt value.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Servers.FileServerUserCollection.Add(System.String,System.String,Rebex.Net.Servers.ShellType)">
      <summary>
            Adds a new file server user with the specified password and their virtual filesystem based at the specified path.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <param name="shellType">Specifies which kind of shell to use for this user.</param>
      <returns>An instance of the newly-created user.</returns>
      <remarks>
            The password is one-way transformed to a SHA-256 hash with a random salt value.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Servers.FileServerUserCollection.Add(System.String,System.String,System.String,Rebex.Net.Servers.ShellType)">
      <summary>
            Adds a new file server user with the specified password and their virtual filesystem based at the specified path.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <param name="physicalRootPath">The placement of the virtual root of the user.</param>
      <param name="shellType">Specifies which kind of shell to use for this user.</param>
      <returns>An instance of the newly-created user.</returns>
      <remarks>
            The password is one-way transformed to a SHA-256 hash with a random salt value.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Servers.FileServerUserCollection.Add(System.String,System.String,System.String,System.String)">
      <summary>
            Adds a new file server user with the specified password, their virtual filesystem based at the specified path, and initial path in the virtual filesystem.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <param name="physicalRootPath">The placement of the virtual root of the user.</param>
      <param name="initialVirtualPath">The initial path (i.e. home directory) of the user. This is virtual filesystem path, relative to the virtual root.</param>
      <returns>An instance of the newly-created user.</returns>
      <remarks>
            The password is one-way transformed to a SHA-256 hash with a random salt value.
            </remarks>
    </member>
    <member name="T:Rebex.Net.Servers.FileServerSettings">
      <summary>
            File server settings.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.UseNativeFilesystem">
      <summary>
            Gets or sets a value indicating whether to prefer filesystem access through Win32 API (native) or through System.IO.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.FileShareMode">
      <summary>
            Gets or sets flags for controlling the kind of access others can have to an opened file.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.ShellHostName">
      <summary>
            Gets or sets the server's host name for SCP subsystem.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.ShellWelcomeMessage">
      <summary>
            Gets or sets the user's welcome message for SCP subsystem.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.ForceShellWelcomeMessage">
      <summary>
            Gets or sets a value indicating whether to show <see cref="P:Rebex.Net.Servers.FileServerSettings.ShellWelcomeMessage" /> on pseudoterminal-less shell sessions as well.
            By default, the welcome message is only shown for shell sessions with a pseudoterminal.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.ShellPrompt">
      <summary>
            Gets or sets the user's prompt for SCP subsystem.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.ShellName">
      <summary>
            Gets or sets the shell name for SCP subsystem.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.ShellSystemType">
      <summary>
            Gets or sets the system type for SCP subsystem.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.ShellSystemVersion">
      <summary>
            Gets or sets the system version for SCP subsystem.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.ShowHiddenItems">
      <summary>
            Gets or sets a value indicating whether to show hidden files and directories in listings. Default is true.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.AcceptWindowsPaths">
      <summary>
            Gets or sets a value indicating whether the SFTP subsystem accepts Windows-like paths with drive letter, colon and backspaces.
            If accepted, these paths get normalized from 'd:\directory\file' form to '/d/directory/file' form.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.GetItemInfoRequiresListPermission">
      <summary>
            Gets or sets a value indicating whether getting item info requires Read or List permission
            (used for <see cref="E:Rebex.Net.Servers.FileServer.PathAccessAuthorization">FileServer.PathAccessAuthorization</see> event).
            Default is false, which means getting item info requires <see cref="F:Rebex.Net.Servers.FileSystemOperation.Read" /> permission.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.EnableEventsForFailedTransfers">
      <summary>
            Gets or sets a value indicating whether to raise <see cref="E:Rebex.Net.Servers.FileServer.FileDownloaded" /> and/or <see cref="E:Rebex.Net.Servers.FileServer.FileUploaded" />
            events for incomplete transfers.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.EnableReverseTunneling">
      <summary>
            Gets or sets a value indicating whether to enable SSH reverse tunneling.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.SftpMaxVersion">
      <summary>
            Gets or sets maximum enabled SFTP version. Allowed values are 3, 4, or 5.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.SftpMaxSendQueueLength">
      <summary>
            Maximum length of queue of outgoing SFTP response packets.
            When the queue is full, the SFTP subsystem will not process further SFTP client requests until the client
            receives some responses. Value of 0 indiates unlimited queue length.
            </summary>
      <remarks>
            Setting this to a value that is too low negatively affects performace.
            Setting this to a value too high might cause memory consumption spikes.
            </remarks>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.ShellEncoding">
      <summary>
            Gets or sets charset to be used by SCP subsystem.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.SftpEncoding">
      <summary>
            Gets or sets charset to be used by SFTP v3.
            </summary>
      <remarks>SFTP v4 always uses UTF-8.</remarks>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.SshParameters">
      <summary>
            Gets or sets SSH parameters.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileServerSettings.DiffieHellmanParametersCache">
      <summary>
            Gets or sets Diffie-Hellman parameters cache.
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.ServerUserCollection">
      <summary>
            Provides a simple default user database that is used when no custom authentication has been defined.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.ServerUserCollection.Add(System.String,System.String)">
      <summary>
            Adds a user with the specified user name and password to the collection.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <returns>An instance of the newly-created user.</returns>
    </member>
    <member name="T:Rebex.Net.Servers.SessionState">
      <summary>
            Session state.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.SessionState.Closed">
      <summary>
            Session is closed.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.SessionState.Initializing">
      <summary>
            Session initialization is in progress.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.SessionState.KeyExchange">
      <summary>
            Key exchange is in progress.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.SessionState.Authentication">
      <summary>
            Authentication is in progress.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.SessionState.Running">
      <summary>
            Server is active and running.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.SessionState.Closing">
      <summary>
            Server is being closed.
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.ServerSession">
      <summary>
            Represents a protocol session.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ServerSession.Current">
      <summary>
            Gets the current session within which the current code is executed, or null if not within session.
            </summary>
      <value>Current session, or null if not available.</value>
    </member>
    <member name="P:Rebex.Net.Servers.ServerSession.Id">
      <summary>
            Gets session ID.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ServerSession.Context">
      <summary>
            Gets custom context object assigned in <see cref="E:Rebex.Net.Servers.Core.Server.Connecting" />, <see cref="E:Rebex.Net.Servers.Core.Server.PreAuthentication" /> or <see cref="E:Rebex.Net.Servers.Core.Server.Authentication" /> events.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ServerSession.State">
      <summary>
            Gets the current state of the session.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ServerSession.Cipher">
      <summary>
            Gets the active cipher.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ServerSession.UserName">
      <summary>
            Gets the current session user name.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ServerSession.User">
      <summary>
            Gets the current session user.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ServerSession.ClientAddress">
      <summary>
            Gets the client's IP address.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ServerSession.ClientEndPoint">
      <summary>
            Gets the client-side endpoint of the client's connection.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ServerSession.ServerAddress">
      <summary>
            Gets the server-side IP address of the client's connection.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ServerSession.ServerEndPoint">
      <summary>
            Gets the server-side endpoint of the client's connection.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ServerSession.Duration">
      <summary>
            Gets the current duration of the session.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.ServerSession.Close">
      <summary>
            Close the session.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.ServerSession.SendMessage(System.String)">
      <summary>
            Sends a message to this session.
            </summary>
      <param name="message">The message to be sent.</param>
    </member>
    <member name="T:Rebex.Net.Servers.ServerUser">
      <summary>
            Represents a server user.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.ServerUser.Name">
      <summary>
            Gets the user name.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.ServerUser.#ctor(System.String,System.String)">
      <summary>
            Creates a new server user with the specified password.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <remarks>
            The password is one-way transformed to a SHA-256 hash with a random salt value.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Servers.ServerUser.CheckPassword(System.String)">
      <summary>
            Checks whether the specified password is correct.
            </summary>
      <param name="password">Password to check.</param>
      <returns>True if correct, false otherwise.</returns>
    </member>
    <member name="M:Rebex.Net.Servers.ServerUser.ToString">
      <summary>
            Returns a string that represents the user.
            </summary>
      <returns>User name.</returns>
    </member>
    <member name="T:Rebex.Net.Servers.FileServerUser">
      <summary>
            Represents a user of the <see cref="T:Rebex.Net.Servers.FileServer" />.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.FileServerUser.#ctor(System.String,System.String)">
      <summary>
            Creates a new file server user with the specified password. Virtual file system can be specified later using <see cref="M:Rebex.Net.Servers.FileServerUser.SetFileSystem(Rebex.IO.FileSystem.FileSystemProvider,System.String)" /> method.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <remarks>
            The password is one-way transformed to a SHA-256 hash with a random salt value.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Servers.FileServerUser.#ctor(System.String,System.String,System.String)">
      <summary>
            Creates a new file server user with the specified password and their virtual filesystem based at the specified path.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <param name="virtualRootPath">The placement of the virtual root of the user.</param>
      <remarks>
            The password is one-way transformed to a SHA-256 hash with a random salt value.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Servers.FileServerUser.#ctor(System.String,System.String,Rebex.IO.FileSystem.FileSystemProvider,System.String)">
      <summary>
            Creates a new file server user with the specified password and their virtual filesystem based at the specified path.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <param name="provider">File system provider.
            Set this to an instance of class derived from <see cref="T:Rebex.IO.FileSystem.ReadWriteFileSystemProvider" />
            or <see cref="T:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider" /> provided by <code>Rebex.FileSystem</code> assembly.</param>
      <param name="virtualRootPath">The placement of the virtual root of the user.</param>
      <remarks>
            The password is one-way transformed to a SHA-256 hash with a random salt value.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Servers.FileServerUser.#ctor(System.String,System.String,Rebex.Net.Servers.ShellType)">
      <summary>
            Creates a new file server user with the specified password and their virtual filesystem based at the specified path.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <param name="shellType">Specifies which kind of shell to use for this user.</param>
      <remarks>
            The password is one-way transformed to a SHA-256 hash with a random salt value.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Servers.FileServerUser.#ctor(System.String,System.String,System.String,Rebex.Net.Servers.ShellType)">
      <summary>
            Creates a new file server user with the specified password and their virtual filesystem based at the specified path.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <param name="virtualRootPath">The placement of the virtual root of the user.</param>
      <param name="shellType">Specifies which kind of shell to use for this user.</param>
      <remarks>
            The password is one-way transformed to a SHA-256 hash with a random salt value.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Servers.FileServerUser.#ctor(System.String,System.String,Rebex.IO.FileSystem.FileSystemProvider,System.String,Rebex.Net.Servers.ShellType)">
      <summary>
            Creates a new file server user with the specified password and their virtual filesystem based at the specified path.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <param name="provider">File system provider.
            Set this to an instance of class derived from <see cref="T:Rebex.IO.FileSystem.ReadWriteFileSystemProvider" />
            or <see cref="T:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider" /> provided by <code>Rebex.FileSystem</code> assembly.</param>
      <param name="virtualRootPath">The placement of the virtual root of the user.</param>
      <param name="shellType">Specifies which kind of shell to use for this user.</param>
      <remarks>
            The password is one-way transformed to a SHA-256 hash with a random salt value.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Servers.FileServerUser.#ctor(System.String,System.String,System.String,System.String)">
      <summary>
            Creates a new file server user with the specified password, their virtual filesystem based at the specified path, and initial path in the virtual filesystem.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <param name="virtualRootPath">The placement of the virtual root of the user. Note: Pass 'null' here if you intend to call <see cref="M:Rebex.Net.Servers.FileServerUser.SetFileSystem(Rebex.IO.FileSystem.FileSystemProvider,System.String)" /> later.</param>
      <param name="initialVirtualPath">The initial path (i.e. home directory) of the user within the virtual file system.</param>
      <remarks>
            The password is one-way transformed to a SHA-256 hash with a random salt value.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Servers.FileServerUser.#ctor(System.String,System.String,Rebex.IO.FileSystem.FileSystemProvider,System.String,System.String)">
      <summary>
            Creates a new file server user with the specified password, their virtual filesystem based at the specified path, and initial path in the virtual filesystem.
            </summary>
      <param name="userName">User name.</param>
      <param name="password">Password.</param>
      <param name="provider">File system provider.
            Set this to an instance of class derived from <see cref="T:Rebex.IO.FileSystem.ReadWriteFileSystemProvider" />
            or <see cref="T:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider" /> provided by <code>Rebex.FileSystem</code> assembly.</param>
      <param name="virtualRootPath">The placement of the virtual root of the user. Note: Pass 'null' here if you intend to call <see cref="M:Rebex.Net.Servers.FileServerUser.SetFileSystem(Rebex.IO.FileSystem.FileSystemProvider,System.String)" /> later.</param>
      <param name="initialVirtualPath">The initial path (i.e. home directory) of the user within the virtual file system.</param>
      <remarks>
            The password is one-way transformed to a SHA-256 hash with a random salt value.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Servers.FileServerUser.SetFileSystem(Rebex.IO.FileSystem.FileSystemProvider,System.String)">
      <summary>
            Sets custom file system.
            </summary>
      <param name="provider">File system provider.
            Set this to an instance of class derived from <see cref="T:Rebex.IO.FileSystem.ReadWriteFileSystemProvider" />
            or <see cref="T:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider" /> provided by <code>Rebex.FileSystem</code> assembly.</param>
      <param name="virtualRootPath">Path to be used as virtual root directory.</param>
      <remarks>
            The <paramref name="provider" /> argment can be <code>null</code>. In this case, the virtual root path is a local file system path.
            </remarks>
    </member>
    <member name="T:Rebex.Net.Servers.SshConsole">
      <summary>
            Represents an SSH console which provides methods for reading and writing.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.SshConsole.User">
      <summary>
            Gets the authenticated user.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.SshConsole.HasPseudoTerminal">
      <summary>
            Gets a value indicating whether the console has a pseudo-terminal.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.SshConsole.CurrentPath">
      <summary>
            Gets the current path.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.SshConsole.Clear">
      <summary>
            Clears the console.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.SshConsole.Write(System.String,System.Object[])">
      <summary>
            Writes the text respresentation of the specified array of objects to the <see cref="T:Rebex.Net.Servers.SshConsole" /> 
            using the specified format information.
            </summary>
      <param name="format">A format string.</param>
      <param name="args">An array of objects to write using the specified format.</param>
    </member>
    <member name="M:Rebex.Net.Servers.SshConsole.WriteLine(System.String,System.Object[])">
      <summary>
            Writes the text representation of the specified array of objects, followed
            by the newline, to the <see cref="T:Rebex.Net.Servers.SshConsole" /> using the specified
            format.
            </summary>
      <param name="format">A format string.</param>
      <param name="args">An array of objects to write using format.</param>
    </member>
    <member name="M:Rebex.Net.Servers.SshConsole.Write(System.Object)">
      <summary>
            Writes the text representation of the specified object to the <see cref="T:Rebex.Net.Servers.SshConsole" />.
            </summary>
      <param name="value">The value to write.</param>
    </member>
    <member name="M:Rebex.Net.Servers.SshConsole.WriteLine(System.Object)">
      <summary>
            Writes the text representation of the specified object, followed by the newline,
            to the <see cref="T:Rebex.Net.Servers.SshConsole" />.
            </summary>
      <param name="value">The value to write.</param>
    </member>
    <member name="M:Rebex.Net.Servers.SshConsole.WriteLine">
      <summary>
            Writes a newline to the <see cref="T:Rebex.Net.Servers.SshConsole" />.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.SshConsole.ReadChar">
      <summary>
            Reads the next character from the <see cref="T:Rebex.Net.Servers.SshConsole" />.
            </summary>
      <returns>The next character from <see cref="T:Rebex.Net.Servers.SshConsole" />, or null if there are 
            currently no more characters to be read.</returns>
    </member>
    <member name="M:Rebex.Net.Servers.SshConsole.ReadLine">
      <summary>
            Reads the next line of characters from the <see cref="T:Rebex.Net.Servers.SshConsole" />.
            </summary>
      <returns>The next line of characters from the <see cref="T:Rebex.Net.Servers.SshConsole" />, or null if no more lines are available.</returns>
      <remarks>The read line is displayed using the <see cref="T:Rebex.Net.Servers.SshConsole" /></remarks>
    </member>
    <member name="M:Rebex.Net.Servers.SshConsole.ReadLine(System.Boolean)">
      <summary>
            Reads the next line of characters from the <see cref="T:Rebex.Net.Servers.SshConsole" /> with the specified password mode.
            </summary>
      <param name="passwordMode">If set to true, the read line is masked with asterisks in the console output; otherwise it is displayed as is.</param>
      <returns>The next line of characters from the <see cref="T:Rebex.Net.Servers.SshConsole" />, or null if no more lines are available.</returns>
      <remarks>The read line is displayed using the <see cref="T:Rebex.Net.Servers.SshConsole" /></remarks>
    </member>
    <member name="M:Rebex.Net.Servers.SshConsole.GetInputStream">
      <summary>
            Returns standard input stream for this console.
            </summary>
      <returns>Standard input stream.</returns>
    </member>
    <member name="M:Rebex.Net.Servers.SshConsole.GetOutputStream">
      <summary>
            Returns standard output stream for this console.
            </summary>
      <returns>Standard output stream.</returns>
    </member>
    <member name="M:Rebex.Net.Servers.SshConsole.GetErrorStream">
      <summary>
            Returns standard error stream for this console, if available.
            </summary>
      <returns>Standard error stream, or null if not available.</returns>
    </member>
    <member name="T:Rebex.Net.Servers.TunnelRequestType">
      <summary>
            Tunnel request type for <see cref="E:Rebex.Net.Servers.FileServer.TunnelRequested" /> event's <see cref="T:Rebex.Net.Servers.TunnelRequestedEventArgs" />.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.TunnelRequestType.OutgoingTunnel">
      <summary>
            Request to start an outgoing tunnel.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.TunnelRequestType.IncomingTunnel">
      <summary>
            Request to start an incoming tunnel.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.TunnelRequestType.StartListening">
      <summary>
            Request to start listening for incomming tunneled connections.
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.TunnelRequestedEventArgs">
      <summary>
            Provides data for the <see cref="E:Rebex.Net.Servers.FileServer.TunnelRequested" /> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.TunnelRequestedEventArgs.IsOutgoing">
      <summary>
            Gets a value indicating whether the requested tunnel is an outgoing tunnel.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.TunnelRequestedEventArgs.IsIncoming">
      <summary>
            Gets a value indicating whether the requested tunnel is a reverse (incoming) tunnel (SSH port forwarding).
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.TunnelRequestedEventArgs.Type">
      <summary>
            Tunnel request type.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.TunnelRequestedEventArgs.HostName">
      <summary>
            Gets the name of the remote host to connect to (for outgoing tunnels);
            or the name of the remote host that is attempting to connect (for incoming tunnels);
            or the host name at which listening for incoming connection is about to start.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.TunnelRequestedEventArgs.Port">
      <summary>
            Gets the port of the remote host to connect to (for outgoing tunnels);
            the port of the remote host that is attempting to connect (for incoming tunnels);
            or the port at the server at which listening for incoming connection is about to start.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.TunnelRequestedEventArgs.Session">
      <summary>
            Gets server session.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.TunnelRequestedEventArgs.User">
      <summary>
            Gets the <see cref="T:Rebex.Net.Servers.FileServerUser" /> that requested the tunnel (for outgoing tunnels and reverse tunneling requests)
            or the user that initiated the tunneling (for incoming connections to reverse tunnels).
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.TunnelRequestedEventArgs.Accept">
      <summary>
            Gets or sets a value indicating whether to accept the tunneling request.
            </summary>
      <value>True to accept the request; false to reject it.</value>
      <remarks>Default is true.</remarks>
    </member>
    <member name="T:Rebex.Net.Servers.FileSystemOperation">
      <summary>
            Specifies required file or directory operation permissions. Used by <see cref="T:Rebex.Net.Servers.PathAccessAuthorizationEventArgs" />.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.FileSystemOperation.Read">
      <summary>
            Open file for reading. Get flags for file / directory.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.FileSystemOperation.Write">
      <summary>
            Open file for writing. Set flags for file / directory.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.FileSystemOperation.Create">
      <summary>
            Create file or directory.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.FileSystemOperation.Delete">
      <summary>
            Delete file or directory.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.FileSystemOperation.List">
      <summary>
            List content of directory.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.FileSystemOperation.All">
      <summary>
            All operations.
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.FileServerAction">
      <summary>
            Specifies the action to be performed. Used by <see cref="T:Rebex.Net.Servers.PathAccessAuthorizationEventArgs" />.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.FileServerAction.OpenDirectory">
      <summary>
            Directory is to be opened.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.FileServerAction.CreateDirectory">
      <summary>
            Directory is to be created.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.FileServerAction.DeleteDirectory">
      <summary>
            Directory is to be deleted.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.FileServerAction.OpenFile">
      <summary>
            File is to be opened.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.FileServerAction.DeleteFile">
      <summary>
            File is to be deleted.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.FileServerAction.GetItemInfo">
      <summary>
            Information about a file or directory is about to be retrieved.
            </summary>
    </member>
    <member name="F:Rebex.Net.Servers.FileServerAction.SetItemInfo">
      <summary>
            Information about a file or directory is about to be updated.
            </summary>
    </member>
    <member name="T:Rebex.Net.Servers.PathAccessAuthorizationEventArgs">
      <summary>
            Provides data for the <see cref="E:Rebex.Net.Servers.FileServer.PathAccessAuthorization" /> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.PathAccessAuthorizationEventArgs.Session">
      <summary>
            Gets server session.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.PathAccessAuthorizationEventArgs.Path">
      <summary>
            Gets the path which needs to be authorized for the specified operations (relative to the virtual root of the user's virtual filesystem).
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.PathAccessAuthorizationEventArgs.FullPath">
      <summary>
            Gets the full path which needs to be authorized for the specified operations (relative to the root of the user's base filesystem).
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.PathAccessAuthorizationEventArgs.User">
      <summary>
            Gets the <see cref="T:Rebex.Net.Servers.FileServerUser" /> which needs the path access authorization.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.PathAccessAuthorizationEventArgs.Action">
      <summary>
            Gets file server action that needs to be authorized.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.PathAccessAuthorizationEventArgs.RequestedOperations">
      <summary>
            Gets operations that need to be authorized.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.PathAccessAuthorizationEventArgs.Allow">
      <summary>
            Allows requested operations.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.PathAccessAuthorizationEventArgs.Allow(Rebex.Net.Servers.FileSystemOperation)">
      <summary>
            Allows requested operations if they match the specified operations. Otherwise denies them.
            </summary>
      <param name="operation">Operations to allow.</param>
    </member>
    <member name="M:Rebex.Net.Servers.PathAccessAuthorizationEventArgs.Deny">
      <summary>
            Denies requested operations.
            </summary>
    </member>
    <member name="M:Rebex.Net.Servers.PathAccessAuthorizationEventArgs.Deny(Rebex.Net.Servers.FileSystemOperation)">
      <summary>
            Denies requested operations if they match the specified operations. Otherwise allows them.
            </summary>
      <param name="operation">Operations to allow.</param>
    </member>
    <member name="T:Rebex.Net.Servers.FileTransferredEventArgs">
      <summary>
            Provides data for the <see cref="E:Rebex.Net.Servers.FileServer.FileUploaded" /> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileTransferredEventArgs.Session">
      <summary>
            Gets server session.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileTransferredEventArgs.Path">
      <summary>
            Gets the path of the uploaded file (relative to the virtual root of the user's virtual filesystem).
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileTransferredEventArgs.FullPath">
      <summary>
            Gets the full path of the uploaded file (relative to the root of the user's base filesystem).
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileTransferredEventArgs.User">
      <summary>
            Gets the <see cref="T:Rebex.Net.Servers.FileServerUser" /> that uploaded the file.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileTransferredEventArgs.BytesTransferred">
      <summary>
            Gets number of bytes written to the file.
            </summary>
    </member>
    <member name="P:Rebex.Net.Servers.FileTransferredEventArgs.HasFailed">
      <summary>
            Gets a value indicating whether the transfer has failed
            (= the SFTP session failed and the file handle has not been properly closed by the SFTP client).
            </summary>
    </member>
  </members>
</doc>