/// <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; });