public AuthTokenResultDTO AuthToken(AuthTokenDTO authTokenDTO)
        {
            _logger.LogInformation("AuthToken generating token");
            var tokenHandler = new JwtSecurityTokenHandler();
            var secret       = Encoding.ASCII.GetBytes(_appSettings.Secret);
            IDictionary <string, string> SubjectRaw = authTokenDTO.SubjectRaw;
            var claims = new List <Claim>();

            foreach (var item in SubjectRaw)
            {
                claims.Add(new Claim(item.Key, item.Value));
            }

            SecurityKey key             = new SymmetricSecurityKey(secret);
            string      algorithm       = SecurityAlgorithms.HmacSha256Signature;
            var         tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject            = new ClaimsIdentity(claims),
                Expires            = DateTime.UtcNow.AddDays(7),
                SigningCredentials = new SigningCredentials(key, algorithm),
                Claims             = authTokenDTO.Claims
            };
            var token       = tokenHandler.CreateToken(tokenDescriptor);
            var tokenString = tokenHandler.WriteToken(token);

            return(new AuthTokenResultDTO {
                Token = tokenString
            });
        }
        public async Task <IActionResult> UpdateDescription([FromBody] AuthTokenDTO updatedToken)
        {
            var user = await UserManager.GetUserAsync(User);

            await DataService.UpdateTokenDescription(updatedToken.Token, updatedToken.Description, user);

            return(Ok());
        }
Example #3
0
        public async Task <ActionResult> Login([FromBody] UserAuthDTO userAuth)
        {
            // UserAuthDTO userAuth = new UserAuthDTO();
            using (UnitOfWork uow = new UnitOfWork())
            {
                UsersAuthRepository usersAuthRepository = new UsersAuthRepository(uow);
                userAuth = await usersAuthRepository.Login(userAuth);
            }

            if (userAuth == null)
            {
                return(Conflict());
            }
            else
            {
                string       token     = SessionManager.StartNewSession(userAuth.Id);
                AuthTokenDTO authToken = new AuthTokenDTO(token);
                authToken.UserId = userAuth.Id;
                return(Ok(authToken));
            }
        }
        public UserSignInResultDTO UserSignIn(UserSignInDTO userSignInDTO)
        {
            AccountFindResultDTO accountFindResultDTO = _accountService.Find(userSignInDTO.Email);
            //TODO migrate to _accountService
            AuthVerifyDTO authVerifyDTO = new AuthVerifyDTO {
                ValueRaw  = userSignInDTO.Password,
                ValueSalt = accountFindResultDTO.PasswordSalt,
                ValueHash = accountFindResultDTO.PasswordHash
            };

            _authService.Verify(authVerifyDTO);
            AuthTokenDTO authTokenDTO = new AuthTokenDTO {
                SubjectRaw = new Dictionary <string, string>
                {
                    ["id"] = userSignInDTO.Email
                },
                Claims = new Dictionary <string, object>()
            };
            AuthTokenResultDTO authTokenResultDTO = _authService.AuthToken(authTokenDTO);

            return(new UserSignInResultDTO {
                Token = authTokenResultDTO.Token
            });
        }
 public TokenCreatedEvent(int userId, AuthTokenDTO newToken, string oldToken = "")
 {
     UserId   = userId;
     NewToken = newToken;
     OldToken = oldToken;
 }
Example #6
0
        public HttpResponseMessage UserLogin(UserPasswordModel userPasswordModel)
        {
            var securityUrl = ConfigurationManager.AppSettings["AuthServer"];
            var clientID    = ConfigurationManager.AppSettings["ClientID"];

            HttpWebRequest httpWReq =
                (HttpWebRequest)WebRequest.Create(securityUrl + @"/oauth2/token");

            ASCIIEncoding encoding = new ASCIIEncoding();
            string        postData = "Username="******"&Password="******"&grant_type=password";
            postData += "&client_id=" + clientID;

            try
            {
                byte[] data = encoding.GetBytes(postData);

                httpWReq.Method        = "POST";
                httpWReq.ContentType   = "application/x-www-form-urlencoded";
                httpWReq.ContentLength = data.Length;

                using (Stream stream = httpWReq.GetRequestStream())
                {
                    stream.Write(data, 0, data.Length);
                }

                HttpWebResponse response = (HttpWebResponse)httpWReq.GetResponse();

                string       responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
                AuthTokenDTO authToken      = JsonConvert.DeserializeObject <AuthTokenDTO>(responseString);


                var user = _IUserService.GetUserByUserName(userPasswordModel.UserName);

                var userLookedUp = user;

                var portUser = _IPortalUserService.QueryData().Where(p => p.User.Id == user.Id).ToList();
                var userPort = portUser[0].Port;

                //var portalDefinition = _IPortalService.GetPortalDefinition(userPort.Id);

                var portalUser = PlatformMappingHelper.Map <User, PortalUserDTO>(user);

                //AutherizationResponseDTO autherizationResponse = new AutherizationResponseDTO
                //{ AuthToken = authToken, PortalId = userPort.Id, PortalUser = portalUser };

                var autherizationResponse = new
                { data = authToken, error = "" };

                var userOrg = user.Orgs.FirstOrDefault();


                portalUser.Org = PlatformMappingHelper.Map <Org, OrgDTO>(userOrg);


                try
                {
                    if (user != null)
                    {
                        user.UserLoginHists.Add(new UserLoginHist {
                            LoginDate = DateTime.UtcNow
                        });
                        _UnitOfWork.Commit();
                    }
                }
                catch (Exception daExp)
                {
                    var x = daExp;
                }

                return(Request.CreateResponse <dynamic>(HttpStatusCode.OK, autherizationResponse));
            }
            catch (Exception exp)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }
        }