Beispiel #1
0
        public async Task <IActionResult> Login(LoginViewmodel loginModel)
        {
            var model  = _mapper.Map <LoginModel>(loginModel);
            var result = await _identityService.GetToken(model);

            return(Ok(result));
        }
Beispiel #2
0
        public async Task <IActionResult> Login(LoginViewmodel model)
        {
            if (ModelState.IsValid)
            {
                // This doesn't count login failures towards account lockout
                // To enable password failures to trigger account lockout, set lockoutOnFailure: true
                var result = await signInManager.PasswordSignInAsync(model.Username, model.Password, false, lockoutOnFailure : false);

                if (result.Succeeded)
                {
                    return(RedirectToLocal(model.ReturnUrl));
                }
                if (result.RequiresTwoFactor)
                {
                    // return RedirectToAction(nameof(SendCode), new { model.ReturnUrl });
                }
                if (result.IsLockedOut)
                {
                    return(View("Lockout"));
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Invalid login attempt.");
                    return(View(new LoginViewmodel(model)));
                }
            }
            return(View(new LoginViewmodel(model)));
        }
        public async Task <ActionResult> Login(LoginViewmodel viewmodel)
        {
            var user   = viewmodel.user;
            var result = _loginLogic.ValidateUser(user.Username, user.PasswordHash);

            if (result != null)
            {
                var claims = new List <Claim>
                {
                    new Claim(ClaimTypes.Name, result.Username)
                };
                var claimsIdentity = new ClaimsIdentity(
                    claims, CookieAuthenticationDefaults.AuthenticationScheme);
                var authProperties = new AuthenticationProperties
                {
                    ExpiresUtc = DateTime.UtcNow.AddMinutes(360)
                };

                await HttpContext.SignInAsync(
                    CookieAuthenticationDefaults.AuthenticationScheme,
                    new ClaimsPrincipal(claimsIdentity),
                    authProperties);

                return(RedirectToAction("Index", "Menu"));
            }

            return(View("Index", viewmodel));
        }
Beispiel #4
0
        public async Task <IActionResult> Login([FromBody] LoginViewmodel value)
        {
            var user = await _userManager.FindByEmailAsync(value.Email);

            if (user != null && await _userManager.CheckPasswordAsync(user, value.Password))
            {
                _jwtTokenService.CreateToken(user);
            }
            return(Unauthorized());
        }
Beispiel #5
0
        private void OnApplicationStart(object sender, StartupEventArgs e)
        {
            LoginViewmodel vm   = new LoginViewmodel();
            LoginView      view = new LoginView();

            this.ShutdownMode = ShutdownMode.OnMainWindowClose;

            view.DataContext = vm;
            this.MainWindow  = view;
            view.ShowDialog();
        }
Beispiel #6
0
        public IActionResult Post(LoginViewmodel login)
        {
            // Busca o usuário pelo e-mail e senha
            Usuarios usuarioBuscado = usuarioRepository.BuscarPorEmailSenha(login.Email, login.Senha);

            // Caso não encontre nenhum usuário com o e-mail e senha informados
            if (usuarioBuscado == null)
            {
                // Retorna NotFound com uma mensagem de erro
                return(NotFound("E-mail ou senha inválidos"));
            }

            // Caso o usuário seja encontrado, prossegue para a criação do token

            /*
             *  Instalar as dependências:
             *
             *  Criar e validar o jwt
             *  System.IdentityModel.Tokens.Jwt(5.5.0 ou superior)
             *
             *  Integrar a parte de autenticação
             *  Microsoft.AspNetCore.Authentication.JwtBearer(2.1.1 ou compatível com o .Net Core do projeto)
             */

            // Define os dados que serão fornecidos no token - Payload
            var claims = new[]
            {
                new Claim(JwtRegisteredClaimNames.Email, usuarioBuscado.Email),
                new Claim(JwtRegisteredClaimNames.Jti, usuarioBuscado.IdUsuario.ToString()),
                new Claim(ClaimTypes.Role, usuarioBuscado.IdTipoUsuario.ToString())
            };

            // Define a chave de acesso ao token
            var key = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes("Senatur-chave-autenticacao"));

            // Define as credenciais do token - Header
            var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

            // Gera o token
            var token = new JwtSecurityToken(
                issuer: "Senatur.WebApi",                // emissor do token
                audience: "Senatur.WebApi",              // destinatário do token
                claims: claims,                          // dados definidos acima
                expires: DateTime.Now.AddMinutes(30),    // tempo de expiração
                signingCredentials: creds                // credenciais do token
                );

            // Retorna Ok com o token
            return(Ok(new
            {
                token = new JwtSecurityTokenHandler().WriteToken(token)
            }));
        }
        private UserViewModel Authenticate(LoginViewmodel login)
        {
            UserViewModel user = null;

            if (login.username == "pablo" && login.password == "secret")
            {
                user = new UserViewModel {
                    username = "******"
                };
            }

            return(user);
        }
        public void NavigateBack()
        {
            //TODO: view skal have viewmodel til datacontext + IOC hell

            IUnityContainer container = new UnityContainer();

            container.RegisterType <IAPIAccess, APIAccess>();
            container.RegisterType <IEventAggregator, EventAggregator>();

            LoginViewmodel vm = container.Resolve <LoginViewmodel>();

            Application.Current.MainWindow.Content = new LoginView();
        }
        public ActionResult Login(LoginViewmodel loginViewModel)
        {
            if (ModelState.IsValid)
            {
                if (_membership.ValidateUser(loginViewModel.Email, loginViewModel.Password))
                {
                    FormsAuthentication.SetAuthCookie(loginViewModel.Email, loginViewModel.RememberMe == "on");

                    return(RedirectToAction("Index", "Profile"));
                }
            }

            return(View());
        }
        public dynamic Post([FromBody] LoginViewmodel login)
        {
            IActionResult response = new UnauthorizedResult();

            var user = Authenticate(login);

            if (user != null)
            {
                var tokenString = BuildToken(user);
                //response = new OkResult(tokenString);
                response = new OkResult();
            }

            return(response);
        }
Beispiel #11
0
 public IActionResult Login(LoginViewmodel login)
 {
     if (ModelState.IsValid)
     {
         login.Password = Convert.ToBase64String(SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes(login.Password)));
         var user = _context.Users.FirstOrDefaultAsync(u => u.Email == login.UserName && u.Password == login.Password);
         if (user != null)
         {
             HttpContext.Session.SetString("UserName", login.UserName);
             return(RedirectToAction("Index", "Users"));
         }
         ModelState.AddModelError("Result", "Gçersiz kullanıcı adı ve sifre");
     }
     return(View(login));
 }
Beispiel #12
0
        private void Application_Startup(object sender, StartupEventArgs e)
        {
            UnityContainer container = new UnityContainer();

            container.RegisterType <IAPIAccess, APIAccess>();
            container.RegisterType <IEventAggregator, EventAggregator>();

            MainMoneda     view      = new MainMoneda();
            LoginView      loginview = new LoginView();
            LoginViewmodel vm        = container.Resolve <LoginViewmodel>();

            loginview.DataContext = vm;
            view.Content          = loginview;
            view.Show();
        }
Beispiel #13
0
        public async Task <ActionResult> Index()
        {
            var userSession = await _userSessionService.GetCurrentSession();

            if (userSession == null)
            {
                var loginModel = new LoginViewmodel()
                {
                    ZerodhaUserId = "PS6365",
                    ApiKey        = "17fzkglzv7v07xx1",
                    ApiSecret     = "tvr9hcb8mt6gf2joq8jl3kn61dt41l9h"
                };
                return(View(loginModel));
            }
            else
            {
                Session["userSession"] = AutoMapper.Mapper.Map <UserSessionModel>(userSession);
                return(RedirectToAction("Index", "Home"));
            }
        }
Beispiel #14
0
        public IActionResult Index(LoginViewmodel viewmodel)
        {
            if (loginlogic.LogIn(viewmodel.Username, viewmodel.Password) == true)
            {
                Account account = new Account()
                {
                    id   = 2,
                    name = "kechie"
                };

                HttpContext.Session.SetString("AccountSession", JsonConvert.SerializeObject(account));
                viewmodel.Messsage = "inloggen gelukt";
                return(View("../Home/index"));
            }
            else
            {
                viewmodel.Messsage = "Username/password onjuist";
                return(View("../Login/index"));
            }
        }
Beispiel #15
0
        public async Task <ActionResult> Index(LoginViewmodel model)
        {
            if (ModelState.IsValid)
            {
                kite = new KiteConnect.Kite(APIKey: model.ApiKey, Debug: true);

                User user             = kite.GenerateSession(model.RequestToken, model.ApiSecret);
                var  userSessionModel = new UserSessionModel()
                {
                    AccessToken = user.AccessToken,
                    ApiKey      = model.ApiKey,
                    AppSecret   = model.ApiSecret,
                    UserId      = model.ZerodhaUserId,
                    PublicToken = user.PublicToken
                };
                await _userSessionService.SetCurrentSession(userSessionModel);

                Session["userSession"] = userSessionModel;
                return(RedirectToAction("Index", "Home"));
            }
            ModelState.AddModelError("Something went wrong", "please contact admin");
            return(View(model));
        }
Beispiel #16
0
        public ActionResult Login(LoginViewmodel model)
        {
            scholarDBContext DB = new scholarDBContext();

            var user = DB.userTBs.FirstOrDefault(x => x.userMail == model.userMail && x.Password == model.Password);

            if (user != null)
            {
                Session["userName"] = user.userName;
                Session["userID"]   = user.userID;
                return(RedirectToAction("UserProfile", "User", new { user.userID }));
            }
            else
            {
                var instructor = DB.instructorTBs.FirstOrDefault(x => x.instructorMail == model.userMail && x.password == model.Password);
                if (instructor != null)
                {
                    Session["instructorName"] = instructor.instructorName;
                    Session["instructorID"]   = instructor.instructorID;
                    return(RedirectToAction("InstructorProfile", "Instructor", new { instructor.instructorID }));
                }
                else
                {
                    var admin = DB.adminTBs.FirstOrDefault(x => x.adminMail == model.userMail && x.adminPass == model.Password);
                    if (admin != null)
                    {
                        Session["adminName"] = admin.adminMail;
                        Session["adminID"]   = admin.adminID;
                        return(RedirectToAction("AdminProfile", "Admin", new { admin.adminID }));
                    }
                    else
                    {
                        return(RedirectToAction("Login"));
                    }
                }
            }
        }
 public ActionResult Login(LoginViewmodel model, string returnUrl)
 {
 }
 public MainWindow()
 {
     DataContext = new LoginViewmodel();
     InitializeComponent();
 }
Beispiel #19
0
 public ListenCommand(LoginViewmodel viewModel)
 {
     this.ViewModel = viewModel;
 }
Beispiel #20
0
        public async Task <IActionResult> Login(LoginViewmodel model)
        {
            try
            {
                var key      = config["Sys:Key"];
                var issuer   = config["Sys:Issuer"];
                var audience = config["Sys:Audience"];
                var keyBytes = Encoding.ASCII.GetBytes(key);

                var user = await userManager.FindByNameAsync(model.Username);

                // Try to get a user by email if there's no user returned by username.
                if (user == null)
                {
                    user = await userManager.FindByEmailAsync(model.Username);
                }

                // user service can only send the successful result or throw an error - no need to null check it.
                var resultModel = await userService.Authenticate(model.Username, model.Password);

                switch (resultModel.Role)
                {
                // Admin role doesn't take any special considerations so exclude it.
                case SystemRoles.Company:
                    var companyUser = await context.CompanyUsers.Include(x => x.Company).Include(x => x.User).SingleAsync(x => x.User.Id == resultModel.UserId);

                    resultModel.UserTypeId = companyUser.Company.Id.ToString();
                    break;

                case SystemRoles.Client:
                    var clientUser = await context.ClientUsers.Include(x => x.Client).Include(x => x.User).SingleAsync(x => x.User.Id == resultModel.UserId);

                    resultModel.UserTypeId = clientUser.Client.Id.ToString();
                    break;
                }

                // Serialize the model to json so that it can be added to a claim.
                var modelJson = JsonSerializer.Serialize(resultModel);

                var tokenHandler    = new JwtSecurityTokenHandler();
                var tokenDescriptor = new SecurityTokenDescriptor
                {
                    Subject = new ClaimsIdentity(new Claim[]
                    {
                        new Claim(ClaimTypes.Name, user.Id.ToString()),
                        new Claim(ClaimTypes.UserData, modelJson)
                    }),
                    Expires            = DateTime.Now.AddDays(7),
                    Issuer             = issuer,
                    IssuedAt           = DateTime.Now,
                    Audience           = audience,
                    SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(keyBytes), SecurityAlgorithms.HmacSha512Signature)
                };
                var token = tokenHandler.CreateToken(tokenDescriptor);

                return(Ok(tokenHandler.WriteToken(token)));
            }
            catch (Exception ex)
            {
                _logger.LogError($"Unable to log in", ex);
                return(BadRequest(ex.ToString()));
            }
        }
        public IActionResult Post(LoginViewmodel login)
        {
            try
            {
                var emailValidator = new EmailAddressAttribute();

                Usuario usuarioBuscado;

                login.Email = login.Email.ToUpper();

                // Se for um email.
                if (emailValidator.IsValid(login.Email))
                {
                    usuarioBuscado = _usuarioRepository.BuscarPorEmail(login.Email);

                    if (usuarioBuscado != null)
                    {
                        bool isValidUser = StringUtils.VerificarSenha(login.Senha, usuarioBuscado.Senha);
                        if (!isValidUser)
                        {
                            return(Unauthorized());
                        }
                    }
                    else
                    {
                        return(NotFound());
                    }
                }
                else
                {
                    return(Unauthorized());
                }

                var claims = new List <Claim>
                {
                    new Claim(JwtRegisteredClaimNames.Email, usuarioBuscado.Email),
                    new Claim(JwtRegisteredClaimNames.Jti, usuarioBuscado.IdUsuario.ToString()),
                    new Claim(ClaimTypes.Role, usuarioBuscado.IdTipoUsuario.ToString()),
                    new Claim("Role", usuarioBuscado.IdTipoUsuario.ToString()),
                };

                if (usuarioBuscado.IdTipoUsuario == (int)Enums.TipoUsuario.CANDIDATO)
                {
                    claims.Add(new Claim("StatusUsuario", usuarioBuscado.Candidato.IdStatusUsuario.ToString()));
                }

                if (usuarioBuscado.IdTipoUsuario == (int)Enums.TipoUsuario.EMPRESA)
                {
                    claims.Add(new Claim("StatusUsuario", usuarioBuscado.Empresa.IdStatusUsuario.ToString()));
                }

                // Define a chave de acesso ao token
                var key = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes("ConexaoVagas-chave-autenticacao"));

                // Define as credenciais do token - Header
                var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

                // Gera o token
                var token = new JwtSecurityToken(
                    issuer: "ConexaoVagasAPI",             // emissor do token
                    audience: "ConexaoVagasAPI",           // destinatário do token
                    claims: claims,                        // dados definidos acima
                    expires: DateTime.Now.AddMinutes(30),  // tempo de expiração
                    signingCredentials: creds              // credenciais do token
                    );

                // Retorna Ok com o token
                return(Ok(new
                {
                    token = new JwtSecurityTokenHandler().WriteToken(token)
                }));
            }

            catch (Exception e)
            {
                // Retorna a resposta da requisição 400 - Bad Request e o erro ocorrido com uma mensagem personalizada
                return(BadRequest(new
                {
                    mensagem = "Não foi possível gerar o token",
                    e
                }));
            }
        }
Beispiel #22
0
 public OpenWindowCommand(BaseViewmodel viewModel)
 {
     ViewModel  = viewModel;
     LoginModel = LoginModel;
 }
Beispiel #23
0
        public LoginView()
        {
            InitializeComponent();

            DataContext = new LoginViewmodel(this);
        }
Beispiel #24
0
 public ConnectCommand(LoginViewmodel viewModel)
 {
     this.ViewModel = viewModel;
 }
        //LoginPage
        public IActionResult Index()
        {
            var viewmodel = new LoginViewmodel();

            return(View(viewmodel));
        }