/// <summary> /// Отправка кода на почту. /// </summary> private void SendKey() { MailAddress from = new MailAddress(Shifrator.DeShifrat(EmailName), "Восстановление пароля"); MailAddress to = new MailAddress(edt.Text); MailMessage message = new MailMessage(from, to); message.Subject = "Kод восстановления доступа в приложении Хранилище паролей."; Random rnd = new Random(); Key = rnd.Next(1000, 10000); message.Body = "Ваш код для восстановления доступа: " + Key + " для аккаунта " + Log + "\n" + "Если вы не пытаетесь восстановить доступ просто поигнорируйте это сообщение и не сообщайте никому код."; SmtpClient smtp = new SmtpClient("smtp.mail.ru", 587); smtp.EnableSsl = true; smtp.Credentials = new NetworkCredential(Shifrator.DeShifrat(Login), Shifrator.DeShifrat(Password)); try { smtp.Send(message); } catch (Exception) { Toast.MakeText(this, "Не удалось отправить код восстановления.", ToastLength.Short).Show(); return; } }
/// <summary> /// Регистрация. /// </summary> public ControlerUser(string login, string passw) { user = new User(); user.Login = login; user.Passw = Shifrator.Shifrated(passw); FillFile(login); }
/// <summary> /// Редактирование пароля. /// </summary> /// <param name="idPassw"></param> /// <param name="name"></param> /// <param name="login"></param> /// <param name="password"></param> public void EditPassw(int idPassw, string name, string login, string password) { user.ListPassword[idPassw].Name = name; user.ListPassword[idPassw].Login = Shifrator.Shifrated(login); user.ListPassword[idPassw].Passwd = Shifrator.Shifrated(password); FillFile(user.Login); }
/// <summary> /// Добавление пароля. /// </summary> /// <param name="name"></param> /// <param name="login"></param> /// <param name="password"></param> public void AddPassw(string name, string login, string password) { Password newPassw = new Password(); newPassw.Name = name; newPassw.Login = Shifrator.Shifrated(login); newPassw.Passwd = Shifrator.Shifrated(password); user.ListPassword.Add(newPassw); FillFile(user.Login); }
/// <summary> /// Настройки. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BtnPropert_Click(object sender, System.EventArgs e) { Intent proper = new Intent(this, typeof(PropertiPage)); proper.PutExtra("Log", controlerUser.user.Login); proper.PutExtra("Pass", Shifrator.DeShifrat(controlerUser.user.Passw)); if (!string.IsNullOrWhiteSpace(controlerUser.user.E_mail)) { proper.PutExtra("Email", Shifrator.DeShifrat(controlerUser.user.E_mail)); } StartActivityForResult(proper, 3); }
/// <summary> /// Проверка на подлиность. /// </summary> /// <param name="name"></param> /// <param name="pass"></param> /// <returns></returns> public static bool IsLogIn(string login, string pass) { User testUser = ReadInFile(login); if (testUser.Login == login && Shifrator.DeShifrat(testUser.Passw) == pass) { return(true); } else { return(false); } }
/// <summary> /// Получить электроную почту выбраного пользователя. /// </summary> /// <returns></returns> public static string GetEmail(string login) { User tst = ReadInFile(login); if (!string.IsNullOrWhiteSpace(tst.E_mail)) { return(Shifrator.DeShifrat(tst.E_mail)); } else { return(""); } }
/// <summary> /// Получить все пароли. /// </summary> /// <returns></returns> public List <string> GetPassw() { List <string> lst = new List <string>(); for (int i = 0; i < user.ListPassword.Count; i++) { string t = user.ListPassword[i].Name + "#" + Shifrator.DeShifrat(user.ListPassword[i].Login) + "#" + Shifrator.DeShifrat(user.ListPassword[i].Passwd); lst.Add(t); } return(lst); }
/// <summary> /// При закрытии одной из форм. /// </summary> /// <param name="requestCode"></param> /// <param name="resultCode"></param> /// <param name="data"></param> protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); //Закрылась форма регистрации. if (requestCode == 0) { if (resultCode == Result.Ok) { //Регистрация if (data.GetStringExtra("LogIn") == null) { string login = data.GetStringExtra("Rlogin"); string pass = data.GetStringExtra("Rpass"); new Android.App.AlertDialog.Builder(this). SetTitle("Добро пожаловать"). SetMessage("Сверху находятся все необходимые кнопки\n" + "-Добавить пароль(Плюс)\n" + "-Удалить пароль(Корзина)\n" + "-Редактировать пароль(Карандаш)\n" + "-Настройки(Шестеренка)\n" + "-Выход\n\n" + "Рекомендация:\n" + "Укажите свою почту во вкладке Настройки " + "и тогда, если вы забудете пароль от аккаунты," + "вы сможете его восстановить."). SetIcon(Resource.Drawable.information_info_1565). SetPositiveButton("Ок", delegate { }). Show(); try { controlerUser = new ControlerUser(login, pass); } catch { Toast.MakeText(this, "Не удалось создать учетную запись.", ToastLength.Short).Show(); Finish(); } } else//Вход { controlerUser = new ControlerUser(data.GetStringExtra("LogIn")); } SetPassword(); } else { Finish(); } } //Закрылась форма добавления пароля. if (requestCode == 1) { if (resultCode == Result.Ok) { string name = data.GetStringExtra("Name"); string login = data.GetStringExtra("Login"); string pass = data.GetStringExtra("Pass"); controlerUser.AddPassw(name, login, pass); SetPassword(); } } //Закрылась форма редактирования пароля. if (requestCode == 2) { if (resultCode == Result.Ok) { string name = data.GetStringExtra("Name"); string login = data.GetStringExtra("Login"); string pass = data.GetStringExtra("Pass"); controlerUser.EditPassw(spinPass.SelectedItemPosition, name, login, pass); SetPassword(); } } //Закрылась форма с настройками. if (requestCode == 3) { if (resultCode == Result.Ok) { string name = data.GetStringExtra("Login"); string pass = data.GetStringExtra("Pass"); string em = data.GetStringExtra("email"); controlerUser.EditUser(name, Shifrator.Shifrated(pass), Shifrator.Shifrated(em)); } if (StatesTheme.IsDark()) { SetDarkThem(); } else { SetWhiteThem(); } } }