Example #1
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.Run(async(context) =>
            {
                string authHeader = context.Request.Headers["Authorization"];
                string[] parts    = authHeader.Split(" ");
                string token      = parts[1];

                context.Response.ContentType = "application/json";

                JwtAuthManager jwtAuthManager = new JwtAuthManager();
                bool isValid = jwtAuthManager.ValidateToken(token);

                if (isValid)
                {
                    await context.Response.WriteAsync("{\"Hello\": \"World\"}");
                }
                else
                {
                    string newToken = jwtAuthManager.GenerateJWTToken();
                    Console.WriteLine(newToken);
                    await context.Response.WriteAsync("{\"Hello\": \"Error\"}");
                }
            });
        }
        public HttpResponseMessage Authentication(AuthenticationDTO authentication)
        {
            try
            {
                AuthenticationValidation(authentication);

                IAuthentication blAuthentication = ApplicationInstance.ucApplication.Resolve <IAuthentication>();
                UserBE          objUserBE        = blAuthentication.Login(authentication.username, authentication.password);

                if (objUserBE != null)
                {
                    // crear token
                    string strToken = JwtAuthManager.GenerateJWTToken(Convert.ToString(objUserBE.Id));

                    // establecer la cache de la session, permisos, roles, tiempo de session
                    new ApplicationController().SetPrincipal(objUserBE.Id.Value, strToken);

                    return(Request.CreateResponse(HttpStatusCode.OK, new { token = strToken, user = new { id = objUserBE.Id.ToString(), name = objUserBE.Name } }));
                }
                else
                {
                    throw new ArgumentException(messageLoginError);
                }
            }
            catch (Exception ex)
            {
                ExceptionHandler.HandleException(ex, PolicyType.Api);

                return(Request.CreateResponse(HttpStatusCode.Unauthorized, ex.Message));
            }
        }
Example #3
0
        public IHttpActionResult GetToken([FromBody] string[] credentials)
        {
            string username = credentials[0];
            string password = credentials[1];

            LoginService loginService = new LoginService();
            ILoginToken  loginToken;

            try
            {
                loginToken = loginService.TryLoginAllUsers(username, password);
            }
            catch (WrongPasswordException ex)
            {
                ex.GetType();
                return(Unauthorized());
            }

            if (loginToken != null)
            {
                return(Ok(JwtAuthManager.GenerateJWTToken(loginToken)));
            }
            else
            {
                return(Unauthorized());
            }
        }
Example #4
0
        public HttpResponseMessage PostRequestToken(UserDTO userDto)
        {
            if (CheckCredentials(userDto.Email, userDto.Password))
            {
                DateTime expiration = DateTime.UtcNow.AddHours(1);
                string   token      = JwtAuthManager.GenerateJWTToken(userDto.Email, expiration, db);
                User     user       = db.Users.Where(u => u.Email.Equals(userDto.Email)).FirstOrDefault();
                user.FavouritesIds = user.Favorites.Select(f => f.Id).ToList();

                long expirationMillis = Convert.ToInt64(
                    expiration
                    .Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc))
                    .TotalMilliseconds
                    );

                var resp = new SuccessfulSignInDTO
                {
                    Token      = token,
                    Expiration = expirationMillis,
                    User       = user
                };

                return(Request.CreateResponse(HttpStatusCode.OK, resp));
            }

            return(Request.CreateResponse(HttpStatusCode.Unauthorized, "Внесената email адреса или лозинка е погрешна"));
        }
Example #5
0
        public static clsKeyValue GetKeys()
        {
            DP_TPEntities  db  = new DP_TPEntities();
            JwtAuthManager jwt = new JwtAuthManager();


            string Key              = db.AppKeys.Where(x => x.vKey == "key").FirstOrDefault().vvalue;
            string XIBMClientId     = db.AppKeys.Where(x => x.vKey == "XIBMClientId").FirstOrDefault().vvalue;
            string easebuzzsalt     = db.AppKeys.Where(x => x.vKey == "easebuzzsalt").FirstOrDefault().vvalue;
            string easebuzzkey      = db.AppKeys.Where(x => x.vKey == "easebuzzkey").FirstOrDefault().vvalue;
            string easebuzzenv      = db.AppKeys.Where(x => x.vKey == "easebuzzenv").FirstOrDefault().vvalue;
            string payUsalt         = db.AppKeys.Where(x => x.vKey == "payUsalt").FirstOrDefault().vvalue;
            string payUkey          = db.AppKeys.Where(x => x.vKey == "payUkey").FirstOrDefault().vvalue;
            string payUzenv         = db.AppKeys.Where(x => x.vKey == "payUenv").FirstOrDefault().vvalue;
            string XIBMClientSecret = db.AppKeys.Where(x => x.vKey == "XIBMClientSecret").FirstOrDefault().vvalue;
            string SessionKey       = DateTime.Now.ToString("yyyyMMddHHmmssfffffff");
            string AxisSetuAPIURL   = db.AppKeys.Where(x => x.vKey == "AxisSetuAPIURL").FirstOrDefault().vvalue;
            string JWT              = "Bearer " + jwt.GenerateJWTToken();

            return(new clsKeyValue()
            {
                Key = Key, XIBMClientId = XIBMClientId,
                XIBMClientSecret = XIBMClientSecret, SessionID = SessionKey, JWT = JWT,
                easebuzzenv = easebuzzenv,
                easebuzzkey = easebuzzkey,
                easebuzzsalt = easebuzzsalt,
                AxisSetuAPIURL = AxisSetuAPIURL,
                payUsalt = payUsalt,
                payUkey = payUkey,
                payUenv = payUzenv
            });
        }
Example #6
0
 public HttpResponseMessage Get(string username, string password)
 {
     if (CheckUser(username, password))
     {
         return(Request.CreateResponse(HttpStatusCode.OK,
                                       JwtAuthManager.GenerateJWTToken(username)));
     }
     else
     {
         return(Request.CreateResponse(HttpStatusCode.Unauthorized,
                                       "Invalid Request"));
     }
 }
 public HttpResponseMessage Post(Users user)
 {
     if (CheckUser(user))
     {
         return(Request.CreateResponse(HttpStatusCode.OK,
                                       JwtAuthManager.GenerateJWTToken(user.username)));
     }
     else
     {
         return(Request.CreateResponse(HttpStatusCode.Unauthorized,
                                       "Invalid Request"));
     }
 }
        public HttpResponseMessage PostLogin(User user)
        {
            var message = new HttpResponseMessage(HttpStatusCode.NotAcceptable);

            if (!ModelState.IsValid)
            {
                message.Content = new StringContent("Invalid Model");
                return(message);
            }

            if (repository.ValidateRegisteredUser(user))
            {
                var  mId   = repository.GetLoggedUserID(user);
                User mUser = db.User.Find(mId);
                mUser.Token = JwtAuthManager.GenerateJWTToken(mId + "");
                if (mUser != null)
                {
                    db.Entry(mUser).State = EntityState.Modified;

                    try
                    {
                        db.SaveChanges();
                        HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, mUser);
                        return(response);
                    }
                    catch (DbUpdateConcurrencyException)
                    {
                        if (!UserExists(mId))
                        {
                            message.Content = new StringContent("User not exist");
                            return(message);
                        }
                        else
                        {
                            throw;
                        }
                    }
                }
                else
                {
                    message.Content = new StringContent("User not exist");
                    return(message);
                }
            }
            else
            {
                message.Content = new StringContent("Wrong user name or password");
                return(message);
            }
        }
        public HttpResponseMessage CreateToken([FromBody] UserDTO userDTO)
        {
            string username = null, password = null, clientId = null;

            username = userDTO.UserName;
            password = userDTO.UserPassword;
            clientId = userDTO.ClientID;

            if (CheckUser(username, password))
            {
                return(Request.CreateResponse(HttpStatusCode.OK, JwtAuthManager.GenerateJWTToken(username)));
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.Unauthorized, "Invalid Request"));
            }
        }
        public async Task <ActionResult> Login(LoginDTO loginDto)
        {
            var user = _context.TblUser.FirstOrDefault(x => x.Email == loginDto.Email);

            if (user == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Unauthorized));
            }
            if (!VerifyPasswordHash(loginDto.Password, user.Password, user.Salt))
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Unauthorized));
            }



            return(new HttpStatusCodeResult(HttpStatusCode.OK,
                                            JwtAuthManager.GenerateJWTToken(loginDto.Email)));


            // return Ok(new { token = tokenHandler.WriteToken(token), email = userFromRepo.Email, fullname = userFromRepo.FullName });
        }
Example #11
0
        public HttpResponseMessage Validate(string email, string password)
        {
            loggerService.Logger().Info("Calling with parameter as : email and password: "******" and " + password);
            UserDTO user = _userService.ValidateUser(email, password);

            if (user == null)
            {
                var errorPayload = new
                {
                    code    = HttpStatusCode.Forbidden,
                    message = "Invalid username or password",
                    type    = "ERROR"
                };

                return(Request.CreateResponse(HttpStatusCode.Unauthorized, errorPayload, Configuration.Formatters.JsonFormatter));
            }

            var tokenPayload = new
            {
                access_token = JwtAuthManager.GenerateJWTToken(user)
            };

            return(Request.CreateResponse(HttpStatusCode.OK, tokenPayload, Configuration.Formatters.JsonFormatter));
        }
Example #12
0
        public HttpResponseMessage Post([FromBody] AuthUser user)
        {
            if (user == null)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                              "Invalid Request"));
            }

            if (CheckUser(user.Email, user.Password))
            {
                return(Request.CreateResponse(HttpStatusCode.OK, JObject.Parse("{'token':'" + JwtAuthManager.GenerateJWTToken(user.Email) + "'}")
                                              , JsonMediaTypeFormatter.DefaultMediaType));
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.Unauthorized,
                                              "Unauthorized"));
            }
        }
Example #13
0
        public async Task <ResultObject> Login([FromBody] AuthParam authParam)
        {
            var branch = await branchAppService.GetBranchByBranchCodeAsync(authParam.BranchCode);

            ResultObject resultObject = new ResultObject();

            if (branch == null)
            {
                resultObject.Result = null;
                resultObject.ServerErrors.Add(new ServerErr()
                {
                    Hint = ErrorMessages.NotFoundBranch, Type = ConstErrorTypes.BussinessError
                });
                return(resultObject);
            }

            var userDto = await userAppService.FindUser(authParam.UserName, authParam.Password, branch.ID);

            if (userDto == null)
            {
                resultObject.Result = userDto;
                resultObject.ServerErrors.Add(new ServerErr()
                {
                    Hint = ErrorMessages.NotuserFound
                });
                return(resultObject);
            }
            AttachmentFilterDto filter = new AttachmentFilterDto()
            {
                UserID     = userDto.ID,
                CategoryID = ConstAttachmentTypeCategory.User,
                pageNumber = 1
            };
            var userAttachments = await uploadAppService.GetAllAttachmentsAsync(filter);

            userDto.PicturePath = ((IEnumerable <AttachmentDto>)(userAttachments.Results))?.FirstOrDefault()?.Path;


            if (userDto.IsActive == false)
            {
                resultObject.Result = userDto;
                resultObject.ServerErrors.Add(new ServerErr()
                {
                    Hint = ErrorMessages.UserNotEnable
                });
                return(resultObject);
            }
            else if (userDto.UserBranch == null)
            {
                resultObject.Result = null;
                resultObject.ServerErrors.Add(new ServerErr()
                {
                    Hint = ErrorMessages.NotAccessbranch, Type = ConstErrorTypes.BussinessError
                });
                return(resultObject);
            }
            else if (!userDto.UserBranch.Branch.IsActive)
            {
                resultObject.Result = null;
                resultObject.ServerErrors.Add(new ServerErr()
                {
                    Hint = "شعبه فعال نمی باشد.", Type = ConstErrorTypes.BussinessError
                });
                return(resultObject);
            }
            if (userDto != null)
            {
                userDto.Token = JwtAuthManager.GenerateJWTToken(username: authParam.UserName, userID: userDto.ID);
                if (userDto.IsRequireChangePass)
                {
                    var changePassActivity = new ActivityDto()
                    {
                        Id          = ConstActivities.changePassword,
                        ParentId    = 2,
                        Name        = "changePassword",
                        Title       = "تغییر رمز",
                        Path        = "/mp/changePassword",
                        IsMenu      = true,
                        IsActive    = true,
                        IconClass   = "key",
                        Description = "شما ملزم به تغییر رمز عبور می باشید. لطفا رمز عبور را تغییر داده و دوباره به سیستم وارد شوید."
                    };
                    userDto.ActivityDtos.Add(changePassActivity);
                }
                else
                {
                    userDto.ActivityDtos = await accessControl.GetActivitiesAsync(userDto.ID, userDto.UserBranch.BranchId, userDto.IsRequireChangePass);
                }
            }

            //notificationAppService.SendMessage($"کاربر {userDto.UserName} {Environment.NewLine} ورود شما در تاریخ {DateConvertor.Instance.ConvertGregorianToPersianDate(DateTime.Now)} در سامانه صندوق های خرد محلی {userDto.UserBranch.BranchName} ثبت گردید ",
            //    userDto.PhoneNumber);



            return(new ResultObject {
                Result = userDto, ServerErrors = null
            });
        }