Exemplo n.º 1
0
        /// <summary>Creates a message instance.</summary>
        /// <param name="login">Email to login with.</param>
        /// <param name="password">Password to use when logging in.</param>
        /// <param name="loginType">Type of login to perform.</param>
        public LoginMessage(string login, string password, WolfLoginType loginType) : this()
        {
            if (string.IsNullOrWhiteSpace(login))
            {
                throw new ArgumentNullException(nameof(login));
            }
            if (string.IsNullOrWhiteSpace(password))
            {
                throw new ArgumentNullException(nameof(password));
            }

            this.Login     = login;
            this.LoginType = loginType;
            if (this.UseMD5)
            {
                using (MD5 crypto = MD5.Create())
                {
                    byte[] pwdBytes = Encoding.UTF8.GetBytes(password);
                    byte[] hash     = crypto.ComputeHash(pwdBytes);

                    StringBuilder builder = new StringBuilder();
                    for (int i = 0; i < hash.Length; i++)
                    {
                        builder.Append(hash[i].ToString("x2"));
                    }
                    this.Password = builder.ToString();
                }
            }
            else
            {
                this.Password = password;
            }
        }
        /// <summary>Converts <see cref="WolfLoginType"/> to its string representation that is recognized by WOLF protocol.</summary>
        /// <param name="loginType">Login type to convert to string.</param>
        /// <returns>String representation.</returns>
        public static string LoginTypeToString(WolfLoginType loginType)
        {
            switch (loginType)
            {
            case WolfLoginType.Email:
                return("email");

            case WolfLoginType.Google:
                return("google");

            case WolfLoginType.Facebook:
                return("facebook");

            case WolfLoginType.Apple:
                return("apple");

            case WolfLoginType.Twitter:
                return("twitter");

            case WolfLoginType.Snapchat:
                return("snapchat");

            default:
                return(loginType.ToString().ToLowerInvariant());
            }
        }
 // general
 /// <summary>Sets login credentials.</summary>
 /// <param name="builder">Hosted WOLF Client Service builder.</param>
 /// <param name="login">Login.</param>
 /// <param name="password">Password.</param>
 /// <param name="loginType">Login Type.</param>
 /// <seealso cref="HostedWolfClientOptions.LoginUsername"/>
 /// <seealso cref="HostedWolfClientOptions.LoginPassword"/>
 /// <seealso cref="HostedWolfClientOptions.LoginType"/>
 public static IHostedWolfClientServiceBuilder SetCredentials(this IHostedWolfClientServiceBuilder builder, string login, string password, WolfLoginType loginType = WolfLoginType.Email)
 => builder.Configure(options =>
 {
     options.LoginUsername = login;
     options.LoginPassword = password;
     options.LoginType     = loginType;
 });