public async Task <IActionResult> Register([FromBody] RegisterUserVm model) { var user = new AppUser { UserName = model.Username, Email = model.Email, PSK = TimeSensitivePassCode.GeneratePresharedKey() }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { await _signInManager.SignInAsync(user, false); var retVal = new { user, token = GenerateJwtToken(model.Username, user, false) }; // NOTE: Return the PSK to be able to register via Google/Microsoft Authenticator return(Ok(retVal)); } throw new ApplicationException("UNKNOWN_ERROR"); }
public async Task <IdentityResult> RegisterUser(UserModel userModel) { var user = new ApplicationUser { UserName = userModel.UserName, TwoFactorEnabled = true, Psk = TimeSensitivePassCode.GeneratePresharedKey() }; IdentityResult result = await userManager.CreateAsync(user, userModel.Password); return(result); }
//----------------------------------------------------------------------------------------------------------------- //public bool Smtp() //{ // var client = new TcpClient(); // var server = "smtp.gmail.com"; // var port = 465; // try // { // client.Connect(server, port); // // As GMail requires SSL we should use SslStream // // If your SMTP server doesn't support SSL you can // // work directly with the underlying stream // var stream = client.GetStream(); // var sslStream = new SslStream(stream); // sslStream.AuthenticateAsClient(server); // var writer = new StreamWriter(sslStream); // var reader = new StreamReader(sslStream); // if (reader.ReadLine().IndexOf("220 smtp.gmail.com ") == 0) // { // return true; // } // else // return false; // } // catch (Exception e) // { // return false; // } //} ////----------------------------------------------------------------------------------------------------------------------- //public bool testWeb(string url, string res) //{ // try // { // HttpWebRequest r = (HttpWebRequest)WebRequest.Create(url); // HttpWebResponse response = (HttpWebResponse)r.GetResponse(); // // request.Timeout = 3000; // StreamReader reader = new StreamReader(response.GetResponseStream()); // string content = reader.ReadToEnd(); // if (content.IndexOf(res, StringComparison.CurrentCulture) > 0) // { // return true; // } // else return false; // } // catch (Exception ex) // { // return false; // } //} //----------------------------------------------------------------------------------------------------------------------- public string inscription(string username, string lastname, string adresse, string birthdate, string email, int tel, string login, string pwd) { int verif; string PSK = TimeSensitivePassCode.GeneratePresharedKey(); string data = "otpauth://totp/" + login + "?secret=" + PSK; QRCodeGenerator qrg = new QRCodeGenerator(); QRCodeGenerator.QRCode qc = qrg.CreateQrCode(data, QRCodeGenerator.ECCLevel.H); Bitmap bm = qc.GetGraphic(20); MemoryStream ms = new MemoryStream(); bm.Save(ms, ImageFormat.Gif); Byte[] b = ms.ToArray(); string bcd = Convert.ToBase64String(b); connection.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = connection; cmd.CommandText = "INSERT INTO Employe(Nom,Prenom,Adresse,DateDeNaissance,Email,Tel,Psk,Login,Pwd,access) VALUES (@username,@lastname,@adresse,@birthdate,@email,@tel,@psk,@login,@pwd,0)"; cmd.Parameters.AddWithValue("@username", username.Trim()); cmd.Parameters.AddWithValue("@lastname", lastname); cmd.Parameters.AddWithValue("@adresse", adresse); cmd.Parameters.AddWithValue("@birthdate", birthdate); cmd.Parameters.AddWithValue("@email", email); cmd.Parameters.AddWithValue("@tel", tel); cmd.Parameters.AddWithValue("@PSK", PSK); cmd.Parameters.AddWithValue("@login", login); cmd.Parameters.AddWithValue("@pwd", pwd); DataTable dt = new DataTable(); dt.Columns.Add("Error", typeof(string)); DataSet ds = new DataSet(); dt.Columns.Add("SKey", typeof(string)); dt.Columns.Add("SourceImage", typeof(string)); try { verif = cmd.ExecuteNonQuery(); dt.Rows.Add("true", PSK, bcd); } catch (Exception ex) { dt.Rows.Add("Probl�me" + ex.Message, "fff", "******"); } ds.Tables.Add(dt); return(bcd); }
public async Task <IdentityResult> RegisterUser(UserModel userModel) { //le proprietà diefinite qui vengono recuperate con il claim di principal ApplicationUser user = new ApplicationUser { UserName = userModel.UserName, TwoFactorEnabled = true, // PSK = OneTimePass.GenerateSharedPrivateKey() PSK = TimeSensitivePassCode.GeneratePresharedKey() }; var result = await _userManager.CreateAsync(user, userModel.Password); return(result); }
public bool Populate(string email, string password) { bool getUser = FindUser(email, password); string presharedKey = TimeSensitivePassCode.GeneratePresharedKey(); int otp = GenerateOTP(presharedKey); if (getUser == false) { UserContext.users.Add(new User { Email = email, Password = password, OTP = otp, PresharedKey = presharedKey, TwoFactorConfig = false }); UserContext.SaveChanges(); return(true); } return(false); }
public static USerPsk GetPsk(string employeeId) { using (var context = new AdContext()) { var psk = context.USerPsks.FirstOrDefault(o => o.EmployeeId == employeeId); if (psk != null) { return(context.USerPsks.FirstOrDefault(o => o.EmployeeId == employeeId)); } { context.USerPsks.Add(new USerPsk { EmployeeId = employeeId, Psk = TimeSensitivePassCode.GeneratePresharedKey() }); context.SaveChanges(); return(context.USerPsks.FirstOrDefault(o => o.EmployeeId == employeeId)); } } }