Exemplo n.º 1
0
        public IActionResult Login([FromBody] LoginModel user)
        // public IActionResult Login(string username)
        {
            if (user == null)
            {
                return(BadRequest("Invalid client request"));
            }

            try
            {
                if (ValidateUser(user))
                {
                    var model = TokenBuilder.CreateJsonWebToken(user.UserName, null, null, user.Issuer, user.ApplicationID, DateTime.UtcNow.AddDays(1));
                    return(Ok(model));
                }
                else
                {
                    return(Unauthorized());
                }
            }
            catch (Exception ex)
            {
                _logger.LogError($"Something went wrong inside the LocationTracking action: {ex}");
                return(StatusCode(500, "Internal server error"));
            }
        }
        public async Task <IActionResult> Token(StringModel <LoginDto> StringModel)
        {
            try
            {
                LoginDto model = AESEncryptDecrypt <LoginDto> .DecryptStringAES(StringModel.Model);

                byte[] ecodedString = Convert.FromBase64String(model.Password);
                string password     = Encoding.UTF8.GetString(ecodedString);

                Microsoft.AspNetCore.Identity.SignInResult result = await _signInManager.PasswordSignInAsync(model.Username, password, false, false);

                if (result.Succeeded)
                {
                    AppIdentityUser appUser = _userManager.Users.SingleOrDefault(r => r.UserName == model.Username);
                    if (appUser == null)
                    {
                        return(Ok(new APIResult <Guid> {
                            Message = Messages.NoRecord, IsSuccess = false
                        }));
                    }

                    IList <string> appUserRoles;
                    appUserRoles = await _userManager.GetRolesAsync(appUser);

                    Service.DTOs.UserCardDto user = await _userService.GetUserByIdentityID(Guid.Parse(appUser.Id));

                    string token = TokenBuilder.CreateJsonWebToken(appUser.UserName, appUserRoles, "https://www.tulparyazilim.com.tr", "https://www.tulparyazilim.com.tr", Guid.NewGuid(), DateTime.UtcNow.AddDays(30));

                    var data = new TokenDto
                    {
                        ValidTo  = DateTime.UtcNow.AddDays(30),
                        Value    = token,
                        Roles    = string.Join(',', appUserRoles),
                        Username = appUser.UserName,
                        Email    = appUser.Email
                    };

                    string str            = Newtonsoft.Json.JsonConvert.SerializeObject(data);
                    string base64Data     = Convert.ToBase64String(Encoding.Default.GetBytes(str));
                    string encryptredData = AESEncryptDecrypt <string> .EncryptStringAES(base64Data);

                    return(Ok(new APIResult <string>
                    {
                        Message = Messages.Ok,
                        Data = encryptredData,
                        IsSuccess = true
                    }));
                }
                return(Ok(new APIResult <Guid> {
                    Message = Messages.NoRecord, IsSuccess = false
                }));
            }
            catch (Exception ex)
            {
                return(Ok(new APIResult <Guid> {
                    Message = ex.ToString(), IsSuccess = false
                }));
            }
        }
Exemplo n.º 3
0
        public IActionResult Post()
        {
            var model = TokenBuilder.CreateJsonWebToken("gerp.prod", new List <string>()
            {
                "Administrator"
            }, "http://audience.com", "http://issuer.com", Guid.NewGuid(), DateTime.UtcNow.AddMinutes(20));

            return(Ok(model));
        }
Exemplo n.º 4
0
        public IActionResult Post()
        {
            //  public static string CreateJsonWebToken(string username, IEnumerable<string> roles, string audienceUri, string issuerUri
            //, Guid applicationId, DateTime expires, string deviceId = null, bool isReAuthToken = false)
            var model = TokenBuilder.CreateJsonWebToken("ukrit.s", new List <string>()
            {
                "Administrator"
            }, "http://localhost:5000", "http://localhost:5000", "3995132E-22B0-493E-A4BF-2FF52509FAF9", DateTime.UtcNow.AddMinutes(30));

            return(Ok(model));
        }
Exemplo n.º 5
0
        public async Task <ActionResult <AuthenticateUserOutputDto> > AuthenticateUser(LoginDto model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                var intialInfo = await GetTenantDbInfo(model.HostName);

                if (intialInfo == null || string.IsNullOrEmpty(intialInfo.TenantDBServer))
                {
                    ModelState.AddModelError("", "Invalid Host Name.");
                    return(BadRequest(ModelState));
                }

                var result = await _loginService.AuthenticateUser(intialInfo.GetConnectionString(), model.UserNameOrEmail, model.Password, _jwtConfiguration.RefreshTokenExpiryTime);

                if (!result.IsAuthenticated)
                {
                    return(StatusCode(StatusCodes.Status401Unauthorized, "Invalid UserName and Password."));
                }

                List <ClaimModel> claims = SetClaims(intialInfo, result);

                var token = TokenBuilder.CreateJsonWebToken(
                    model.UserNameOrEmail,
                    claims,
                    _jwtConfiguration.Audience,
                    _jwtConfiguration.Issuer,
                    Guid.NewGuid(),
                    DateTime.UtcNow.AddMinutes(Convert.ToInt32(_jwtConfiguration.ExpireTime)));

                return(new AuthenticateUserOutputDto(result.UserId,
                                                     !result.IsPasswordChange,
                                                     token,
                                                     _jwtConfiguration.ExpireTime,
                                                     result.RefreshToken,
                                                     result.FullName,
                                                     result.UserName,
                                                     result.Email,
                                                     result.IsSuperAdmin,
                                                     result.DepartmentId,
                                                     result.RoleRightsId));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.StackTrace);
                return(StatusCode(StatusCodes.Status500InternalServerError, "Something went wrong!"));
            }
        }
Exemplo n.º 6
0
        private string BuildToken(NovoUsuarioModel user)
        {
            var model = TokenBuilder.CreateJsonWebToken(
                "gerp.project",
                new List <string>()
            {
                user.PermissaoId.ToString(), user.Nome, user.Email, user.DataNacimento.ToString("yyyy-MM-dd"), user.PermissaoId.ToString()
            },
                "http://audience.com",
                "http://issuer.com",
                Guid.NewGuid(),
                DateTime.UtcNow.AddDays(1)
                );

            return(model);
        }