예제 #1
0
        public ActionResult SignIn(SignInUserRequest user)
        {
            if (ModelState.IsValid)
            {
                var config = new MapperConfiguration(cfg => cfg.CreateMap <SignInUserRequest, SignInUserDto>()
                                                     .ForMember(u => u.Email, opt => opt.MapFrom(dto => dto.Email))
                                                     .ForMember(u => u.Password, opt => opt.MapFrom(dto => dto.Password))
                                                     );

                var           mapper  = new Mapper(config);
                SignInUserDto userDto = mapper.Map <SignInUserRequest, SignInUserDto>(user);

                bool isExists = this.usersManager.IsUserExists(userDto);

                if (isExists)
                {
                    FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, user.Email, DateTime.Now, DateTime.Now.AddMinutes(30), false, string.Empty);
                    string     enTicket = FormsAuthentication.Encrypt(authTicket);
                    HttpCookie cookie   = new HttpCookie(ConfigurationManager.AppSettings[Constants.AuthenticationCookieName], enTicket);
                    Response.Cookies.Add(cookie);

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

            return(View("Registration"));
        }
예제 #2
0
        public SignInUserResponse SignInUser(SignInUserRequest request)
        {
            SignInUserResponse response = new SignInUserResponse();

            GimAuthenticateRequest gimAuthenticateRequest = new GimAuthenticateRequest {
                Email                    = request.Login,
                Password                 = request.Password,
                ApplicationKey           = this._gimSettings.Value.ApplicationKey,
                TokenExpirationInMinutes = this._gimSettings.Value.TokenExpirationInMinutes
            };

            // Autenticação realizada pelo GIM.
            GimAuthenticateResponse gimAuthenticateResponse = new GimConnector(this._gimSettings).Authenticate(gimAuthenticateRequest);

            if (gimAuthenticateResponse.Success == false)
            {
                foreach (GimReport report in gimAuthenticateResponse.OperationReport)
                {
                    response.OperationReport.Add(new Report {
                        Field = report.Field, Message = report.Message
                    });
                }

                response.StatusCode = gimAuthenticateResponse.StatusCode;
                return(response);
            }

            response.AuthenticationToken      = gimAuthenticateResponse.AuthenticationToken;
            response.TokenExpirationInMinutes = gimAuthenticateResponse.TokenExpirationInMinutes;
            response.UserKey    = gimAuthenticateResponse.UserKey;
            response.Name       = gimAuthenticateResponse.Name;
            response.Success    = gimAuthenticateResponse.Success;
            response.StatusCode = gimAuthenticateResponse.StatusCode;
            return(response);
        }
예제 #3
0
        public async Task SignIn(SignInUserRequest request)
        {
            var user = await _userManager.FindByIdAsync(request.UserId);

            if (user == null)
            {
                throw new UserNotFoundException(request.UserId);
            }
            var res = await _signInManager.PasswordSignInAsync(user, request.Password, false, false);

            if (!res.Succeeded)
            {
                throw new UserUnableToSignException(user.UserName);
            }
        }
예제 #4
0
        private async void validateCredentials()
        {
            // Console.WriteLine("findUser->" + UserName);
            // Console.WriteLine("findPassword" + Password);

            SignInUserRequest signInUserRequest = new SignInUserRequest();

            // Right now hard-coding to the values Brian mentioned, but later change the code to
//            signInUserRequest.EmailOrUserName = UserName;
//            signInUserRequest.Password = Password;

            signInUserRequest.EmailOrUserName = "******";
            signInUserRequest.Password        = "******";

            signInUserRequest.Action = "LoginUser";
            signInUserRequest.Error  = "";

            RestClient  client  = new RestClient("https://tradeemWSapi.azurewebsites.net/api/login");
            RestRequest request = new RestRequest();

            request.AddJsonBody(signInUserRequest);
            request.Method = Method.POST;

            //request.AddHeader("Accept", "application/json");
            // string body = @"{
            //             ""userid"": 1
            //           }";
            //
            //request.AddParameter("application/json", body, ParameterType.RequestBody);

            IRestResponse response = client.Execute(request);

            String json = response.Content; //json has our response

            RestSharp.Deserializers.JsonDeserializer deserial       = new RestSharp.Deserializers.JsonDeserializer();
            SignInAndSignUpUserResponse signInAndSignUpUserResponse = deserial.Deserialize <SignInAndSignUpUserResponse>(response);

            App.UserID = signInAndSignUpUserResponse.UserId;

            if (signInAndSignUpUserResponse.State.Equals("success"))
            {
                _navigationService.NavigateTo(Enums.AppPages.LoginSuccessPage);
            }
            else
            {
                _navigationService.NavigateTo(Enums.AppPages.LoginPage);
            }
        }
예제 #5
0
    public IEnumerator SignIn()
    {
        Debug.Log("hello");
        var body = new SignInUserRequest
        {
            name = PlayerInfoHolder.Name
        };

        var json = JsonUtility.ToJson(body);

        using (var request = new UnityWebRequest("http://194.32.79.63:8000/api/Player/sign-in", "POST"))
        {
            byte[] bodyRaw = Encoding.UTF8.GetBytes(json);
            request.uploadHandler   = new UploadHandlerRaw(bodyRaw);
            request.downloadHandler = new DownloadHandlerBuffer();
            request.SetRequestHeader("Content-Type", "application/json");
            yield return(request.Send());

            while (!request.isDone)
            {
                yield return(null);
            }

            byte[] result    = request.downloadHandler.data;
            string eventJSON = System.Text.Encoding.Default.GetString(result);
            Debug.Log(eventJSON);

            ApiResponse <SignInUserResponse> info = JsonUtility.FromJson <ApiResponse <SignInUserResponse> >(eventJSON);
            Debug.Log($"Data: {info.data} Result: {info.result} Errors: {info.errors}");

            if (info.errors.Length == 0)
            {
                SignInUserResponse evn = info.data;
                PlayerInfoHolder.Token = "Bearer " + evn.token;
                Debug.Log($"Scores: {evn.scores} Reward: {evn.reward} Token: {evn.token}");
            }
            else
            {
                Debug.Log($"Errors: {info.errors[0]}");
            }
        }
    }
예제 #6
0
        public IActionResult SignInUser([FromBody] SignInModel model)
        {
            if (ModelState.IsValid == false)
            {
                return(BadRequest(ModelState));
            }

            SignInUserRequest serviceRequest = new SignInUserRequest {
                Login = model.Login, Password = model.Password
            };

            SignInUserResponse serviceResponse = _userService.SignInUser(serviceRequest);

            SignInUserApiResponse apiResponse = new SignInUserApiResponse();

            if (serviceResponse.Success == false)
            {
                foreach (Report report in serviceResponse.OperationReport)
                {
                    apiResponse.OperationReport.Add(new ApiReport {
                        Field = report.Field, Message = report.Message
                    });
                }

                return(Ok(apiResponse));
            }

            // TODO: Melhorar passagem de dados com AutoMapper ou outro.

            // TODO: remover valores nulos da resposta quando retornar false.

            apiResponse.AuthenticationToken      = serviceResponse.AuthenticationToken;
            apiResponse.TokenExpirationInMinutes = serviceResponse.TokenExpirationInMinutes;
            apiResponse.UserKey = serviceResponse.UserKey;
            apiResponse.Name    = serviceResponse.Name;
            apiResponse.Success = true;

            return(Ok(apiResponse));
        }
예제 #7
0
        public async Task <IActionResult> SignInUser(SignInUserRequest request)
        {
            await _userService.SignIn(request);

            return(NoContent());
        }