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");
        }
Example #2
0
        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);
        }
Example #4
0
        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));
         }
     }
 }