예제 #1
0
        public IActionResult Create(LoginRequest request)
        {
            if (!String.IsNullOrEmpty(request.username) && !String.IsNullOrEmpty(request.password))
            {
                var libarian = _context.Librarians.Where(x => x.Account == request.username && x.PassWord == request.password).SingleOrDefault();

                if (libarian != null)
                {
                    var claimData          = new[] { new Claim(ClaimTypes.Name, request.username) };
                    var key                = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("1234567890123456")); //at least 16 char
                    var signingCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256Signature);
                    var token              = new JwtSecurityToken(
                        issuer: "mysite.com",
                        audience: "mysite.com",
                        expires: DateTime.Now.AddSeconds(10),
                        claims: claimData,
                        signingCredentials: signingCredentials
                        );
                    var tonkenString = new JwtSecurityTokenHandler().WriteToken(token);
                    var userResult   = new LoginReponse
                    {
                        Id       = libarian.LibId,
                        UserName = libarian.Account,
                        FullName = libarian.Name,
                        Token    = "Bearer " + tonkenString
                    };
                    return(Ok(userResult));
                }
            }
            return(Ok("Wrong username or password"));
        }
예제 #2
0
        public void Setup()
        {
            _server = new TestServer(new WebHostBuilder().UseStartup <Startup>());
            _client = _server.CreateClient();


            var random     = new Random();
            var userHelper = new UserHelper();

            this.email = "email" + random.Next().ToString() + "@email.com";
            var user = userHelper.CreateUser(_client, new
            {
                Email            = this.email,
                Full_Name        = "User",
                Password         = "******",
                Confirm_Password = "******",
                Photo            = Constants.PHOTO,
                Photo_Name       = "photo.png",
            }).Result;

            userId = user.UserId;

            var authHelper = new AuthHelper();

            var token = authHelper.Login(_client, this.email).Result;

            this.token = token;
        }
예제 #3
0
        private void SaveSessionData(LoginReponse loginReponse)
        {
            sessionService.Self  = loginReponse.user.RemoteId;
            sessionService.Token = loginReponse.token;
            sessionService.SaveSessionData();

            userDatabase.SaveUserAsync(loginReponse.user);
        }
 public LoginReponse Login(LoginDto data)
 {
     using (var context = new DBContext())
     {
         try
         {
             var hash     = _Util.HashPass.GenerateHash(data.Password);
             var passCode = (from p in context.PassCode where p.Token == hash && p.ServiceId == data.ServiceId select p).FirstOrDefault();
             if (passCode == null)
             {
                 throw new Exception("Mật khẩu không hợp lệ vui lòng nhập lại.");
             }
             LoginReponse result = _Util.JWT.Encode(passCode, 1);
             passCode.LoginAt = DateTime.Now;
             context.SaveChanges();
             return(result);
         } catch (Exception ex)
         {
             throw ex;
         }
     }
 }
        public async Task <LoginReponse> DoLogin(string username, string password)
        {
            string       uri         = $"http://consultadminwebserver.azurewebsites.net/api/Account/Login";
            LoginReponse logedinUser = new LoginReponse();
            HttpClient   httpClient  = new HttpClient();

            httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            LoginRequest login = new LoginRequest
            {
                UserName = username,
                Password = password
            };

            try
            {
                var requestJSON = JsonConvert.SerializeObject(login);
                HttpResponseMessage response = await httpClient.PostAsync(uri,
                                                                          new StringContent(requestJSON.ToString(), Encoding.UTF8, "application/json")).ConfigureAwait(false);

                //response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                response.EnsureSuccessStatusCode();
                string responseBody = await response.Content.ReadAsStringAsync();

                // Deserialize the JSON data into LoginReponse
                LoginReponse loginReponse = JsonConvert.DeserializeObject <LoginReponse>(responseBody);

                logedinUser = loginReponse;
            }
            catch (Exception ex)
            {
                _logger.LoggError(ex, new Dictionary <string, string>()
                {
                    { "Function", "DoLogin" }
                }, Insights.Severity.Error);
            }
            return(logedinUser);
        }
예제 #6
0
        public async void Login(string username, string password, bool rememberMe)
        {
            AccountManager accountManager = new AccountManager();
            LoginReponse   logedinUser    =
                await accountManager.DoLogin(username, password);

            if (logedinUser.StatusCode == 0)
            {
                try
                {
                    CurrentUser.EmployeeId        = logedinUser.EmployeeId;
                    CurrentUser.UserId            = logedinUser.UserId;
                    CurrentUser.LocationId        = logedinUser.LocationId;
                    CurrentUser.FullName          = logedinUser.FullName;
                    CurrentUser.DefaultClintId    = logedinUser.DefaultClintId;
                    CurrentUser.DefaultContractId = 1;
                    //CurrentUser.DefaultContractId = logedinUser.DefaultContractId;
                    CurrentUser.StartTime         = logedinUser.StartTime;
                    CurrentUser.EndTime           = logedinUser.EndTime;
                    CurrentUser.LunchBreak        = logedinUser.LunchBreak;
                    CurrentUser.EmployeeContracts = logedinUser.EmployeeContracts;
                }
                catch (Exception ex)
                {
                    _logger.LoggError(ex, new Dictionary <string, string>()
                    {
                        { "Function", "Login:SetCurrentUser" }
                    });
                }

                try
                {
                    if (rememberMe)
                    {
                        LocalStorageManager localStorage = new LocalStorageManager();
                        localStorage.SaveUseridAndPassword(username, password);
                        _logger.LoggEvent("Save user for auto-login", new Dictionary <string, string>()
                        {
                            { "Username", username }
                        });
                    }
                    else
                    {
                        LocalStorageManager localStorage = new LocalStorageManager();
                        localStorage.ClearUseridAndPassword();
                        _logger.LoggEvent("Clear username for auto-login", new Dictionary <string, string>()
                        {
                            { "Username", username }
                        });
                    }
                }
                catch (Exception ex)
                {
                    _logger.LoggError(ex, new Dictionary <string, string>()
                    {
                        { "Function", "Login:SetRememberMe" }
                    });
                }
                Insights.Identify(CurrentUser.UserId.ToLower());


                Dictionary <string, string> myDict = new Dictionary <string, string>
                {
                    { "Username", username },
                    { "EmployeeId", CurrentUser.EmployeeId.ToString() }
                };
                _logger.LoggEvent("UserLogin", myDict);

                LoginMessage = "Login successfull, redirecting..";
                //Ändra till true sen när validering på ,user och pass finns
                LoginRequired = false;
            }
            else
            {
                _logger.LoggText("Invalid user login! " + username);
                LoginRequired = true;
                LoginMessage  = "Username or Password is wrong";
            }
        }