| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | using System;using System.Collections.Generic;using Renci.SshNet.Common;namespace Renci.SshNet{    /// <summary>    /// Base class for all supported authentication methods    /// </summary>    public abstract class AuthenticationMethod : IAuthenticationMethod    {        /// <summary>        /// Gets the name of the authentication method.        /// </summary>        /// <value>        /// The name of the authentication method.        /// </value>        public abstract string Name { get; }        /// <summary>        /// Gets connection username.        /// </summary>        public string Username { get; private set; }        /// <summary>        /// Gets list of allowed authentications.        /// </summary>        public IEnumerable<string> AllowedAuthentications { get; protected set; }        /// <summary>        /// Initializes a new instance of the <see cref="AuthenticationMethod"/> class.        /// </summary>        /// <param name="username">The username.</param>        /// <exception cref="ArgumentException"><paramref name="username"/> is whitespace or null.</exception>        protected AuthenticationMethod(string username)        {            if (username.IsNullOrWhiteSpace())                throw new ArgumentException("username");            this.Username = username;        }        /// <summary>        /// Authenticates the specified session.        /// </summary>        /// <param name="session">The session to authenticate.</param>        /// <returns>        /// The result of the authentication process.        /// </returns>        public abstract AuthenticationResult Authenticate(Session session);        /// <summary>        /// Authenticates the specified session.        /// </summary>        /// <param name="session">The session to authenticate.</param>        /// <returns>        /// The result of the authentication process.        /// </returns>        AuthenticationResult IAuthenticationMethod.Authenticate(ISession session)        {            return Authenticate((Session) session);        }    }}
 |