예제 #1
0
        public IHttpActionResult LogoutFromSSO([FromBody] LogoutRequestModel request)
        {
            using (var _dbcontext = new BroadwayBuilderContext())
            {
                try
                {
                    ControllerHelper.ValidateLoginRequestModel(ModelState, request);

                    //Guid userSsoId = ControllerHelper.ParseAndCheckId(request.SSOUserId);

                    //SignatureService signatureService = new SignatureService();
                    //if (!signatureService.IsValidClientRequest(request.SSOUserId, request.Email, request.Timestamp, request.Signature))
                    //{
                    //    return Content(HttpStatusCode.Unauthorized, "Invalid Signature Token");
                    //}

                    _dbcontext.Sessions.Remove(_dbcontext.Sessions
                                               .Where(o => o.Signature == request.Signature)
                                               .First());
                    _dbcontext.SaveChanges();

                    return(Ok("User logged out"));
                }
                catch (Exception e)
                {
                    return(InternalServerError(e));
                }
            }
        }
예제 #2
0
        public async Task <HttpResponseMessage> Logout(LogoutRequestModel logoutRequestModel)
        {
            var cts  = new CancellationTokenSource();
            var task = RemoteRequestAsync <HttpResponseMessage>(iApi.GetApi(Priority.UserInitiated).Logout(logoutRequestModel));

            runningTasks.Add(task.Id, cts);

            return(await task);
        }
예제 #3
0
        public async Task Logout()
        {
            var requestModel = new LogoutRequestModel {
                IdUser = CurrentUser.Id,
                Token  = Token,
            };
            await Gateway.LogoutAsync(requestModel);

            Clear();
            RaisSessionStateChanged();
        }
예제 #4
0
        public ActionResult DirtyLogout(LogoutRequestModel request)
        {
            var response = new LogoutResponseModel();

            if (request.User != null)
            {
                if (request.ChatroomId != -1 && request.ParentChatroomId != -1)
                {
                    ChatroomService.RemoveUserFromChatroom(request.ChatroomId, request.ParentChatroomId, request.User.Id);
                }

                UserService.Logout(request.User.Id);
            }

            return(Json(response));
        }
        public async Task <IActionResult> Logout([FromRoute] Guid id, [FromBody] LogoutRequestModel request)
        {
            // TODO : better model validation
            if (id == Guid.Empty || string.IsNullOrEmpty(request.Token) || string.IsNullOrEmpty(request.RefreshToken))
            {
                return(BadRequest());
            }

            BaseModel <bool> result = await _userService.Logout(id, request.Token, request.RefreshToken);

            if (result.HasError || !result.Data)
            {
                return(BadRequest(new { error = result.ErrorMessage }));
            }

            return(Ok());
        }
예제 #6
0
        public ApiResponseModel <int> Logout()
        {
            ApiResponseModel <int> responseModel = new ApiResponseModel <int>();

            using (HttpClient httpClient = new HttpClient())
            {
                httpClient.BaseAddress = new Uri(ConfigHelper.ApiUrl);
                httpClient.DefaultRequestHeaders.Accept.Clear();
                httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", SessionHelper.CurrentUser.UserToken);
                var portalApiRequestModel = new LogoutRequestModel();
                portalApiRequestModel.UserToken = SessionHelper.CurrentUser.UserToken;
                HttpResponseMessage response = httpClient.PostAsJsonAsync(string.Format("User/Logout"), portalApiRequestModel).Result;
                responseModel = response.Content.ReadAsAsync <ApiResponseModel <int> >().Result;
            }
            return(responseModel);
        }
예제 #7
0
 public MenuPage()
 {
     InitializeComponent();
     NavigationPage.SetHasNavigationBar(this, false);
     MasterBehavior       = MasterBehavior.Popover;
     imgProfile.Source    = Settings.ProfilePicture;
     lblUserName.Text     = Settings.Name;
     lblUserLocation.Text = Settings.Address;
     //  lblUserPin.Text = "PIN: "+Settings.UserPin.ToString();
     _objNavigationServiceViewModel = new NavigationServiceViewModel();
     _apiServices               = new RestApi();
     _baseUrl                   = Settings.Url + Domain.LOgOutApiConstant;
     _objHeaderModel            = new HeaderModel();
     _objHeaderModel.OTPToken   = Settings.TokenCode;
     _objLogoutRequestModel     = new LogoutRequestModel();
     _objLogoutResponseModel    = new LogoutResponseModel();
     NavigationList.ItemsSource = _objNavigationServiceViewModel.NavigationMenuList;
 }
예제 #8
0
        public IHttpActionResult Logout(LogoutRequestModel requestModel)
        {
            if (ModelState.IsValid)
            {
                LogoutCommand logoutCommand = new LogoutCommand(requestModel.LoginToken);
                IEnumerable <ValidationResult> validations = commandDispatcher.Validate(logoutCommand);

                ModelState.AddModelErrors(validations);

                if (ModelState.IsValid)
                {
                    commandDispatcher.Dispatch(logoutCommand);

                    return(Ok());
                }
            }

            return(BadRequest(ModelState));
        }
예제 #9
0
        public ActionResult Logout(LogoutRequestModel request)
        {
            var response = new LogoutResponseModel();

            if (request.ChatroomId != -1 && request.ParentChatroomId != -1)
            {
                if (!ChatroomService.RemoveUserFromChatroom(request.ChatroomId, request.ParentChatroomId, request.User.Id))
                {
                    response.AddError("Could not remove user from chatroom.");
                }
            }

            if (!UserService.Logout(request.User.Id))
            {
                response.AddError("Could not logout user.");
            }

            return(Json(response));
        }
예제 #10
0
        public ApiResponseModel <int> Logout([FromBody] LogoutRequestModel requestModel)
        {
            // token'ın geçerliliğinin sonlandırılması işlevidir.
            ApiResponseModel <int> responseModel = new ApiResponseModel <int>();

            // UserToken tablosundaki token'ın geçerliliği sonlandırılacak.
            UserToken userToken = _userTokenService.GetByToken(requestModel.UserToken);

            userToken.IsValid        = false;
            userToken.LogoutDateTime = DateTime.Now;
            int resultUpdateToken = _userTokenService.Update(userToken);

            if (resultUpdateToken <= 0)
            {
                responseModel.ResultStatusCode    = ResultStatusCodeStatic.Error;
                responseModel.ResultStatusMessage = "Failed To Terminate User Token";
                return(responseModel);
            }
            responseModel.Data             = resultUpdateToken;
            responseModel.ResultStatusCode = ResultStatusCodeStatic.Success;
            return(responseModel);
        }
예제 #11
0
        public void TestDirtyLogout()
        {
            var USER = _helper.testUsers[0];

            UserController userControllerTest = new UserController();
            //Create test data model
            LogoutRequestModel model = new LogoutRequestModel()
            {
                UserId           = USER.Id,
                ChatroomId       = -1,
                ParentChatroomId = -1,
                User             = new UserModel()
                {
                    Id = USER.Id
                }
            };

            //Test logout success
            var result = userControllerTest.DirtyLogout(model) as JsonResult;

            Assert.AreEqual(0, ((LogoutResponseModel)result.Data).Errors.Count);

            //Removing user from chatroom is tested in Chatroom Controller
        }
예제 #12
0
        public async Task <LogoutResponseModel> LogOutAsync(string uri, Boolean IsHeaderRequired, HeaderModel objHeaderModel, LogoutRequestModel _objLogoutRequestModel)
        {
            LogoutResponseModel objLogoutResponseModel;
            string s = JsonConvert.SerializeObject(_objLogoutRequestModel);
            HttpResponseMessage response = null;

            using (var stringContent = new StringContent(s, System.Text.Encoding.UTF8, "application/json"))
            {
                if (IsHeaderRequired)
                {
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", objHeaderModel.OTPToken);
                }
                response = await client.PostAsync(uri, stringContent);


                if (response.IsSuccessStatusCode)
                {
                    var SucessResponse = await response.Content.ReadAsStringAsync();

                    objLogoutResponseModel = JsonConvert.DeserializeObject <LogoutResponseModel>(SucessResponse);
                    return(objLogoutResponseModel);
                }
                else
                {
                    var ErrorResponse = await response.Content.ReadAsStringAsync();

                    objLogoutResponseModel = JsonConvert.DeserializeObject <LogoutResponseModel>(ErrorResponse);
                    return(objLogoutResponseModel);
                }
            }
        }
예제 #13
0
 public Task LogoutAsync(LogoutRequestModel model)
 {
     return(SendRequestFor <bool>(API.METHOD.LOGOUT, model));
 }