/// <summary>
        /// Returns auth token for the validated user.
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        private HttpResponseMessage GetAuthToken(BasicAuthenticationIdentity userId)
        {
            LoginResponseObject obj    = new LoginResponseObject();
            CustomerAPI         objCus = new  CustomerAPI();

            objCus.EmailAddress = userId.UserName;
            objCus.UserType     = userId.UserType;
            var token = _tokenServices.GenerateToken(objCus);

            obj.Authorized   = "Authorized:";
            obj.access_token = token;
            obj.userName     = userId.UserName.ToString();
            //obj.expiration = token.ExpiresOn.ToLongDateString();
            obj.userData.email = userId.UserId.ToString();
            //  obj.userData.id = userId.ToString();
            var response = Request.CreateResponse(HttpStatusCode.OK, obj);

            response.Headers.Add("Token", token.AuthToken);
            response.Headers.Add("UserID", userId.UserId.ToString());
            // response.Headers.Add("TokenExpiry", ConfigurationManager.AppSettings["AuthTokenExpiry"]);
            response.Headers.Add("Access-Control-Expose-Headers", "Token,TokenExpiry");
            response.Content.Headers.Add("access_token", token.AuthToken);
            //response.Content.Headers.Add("userName", userId.ToString());
            var session = HttpContext.Current.Session;

            //if(session!=null)
            //{
            //    if(session["AuthUser"]==null)
            //    {
            //        session["AuthUser"] = token;
            //    }
            //}
            return(response);
        }
Example #2
0
    IEnumerator LogIn(string json)
    {
        UnityWebRequest request = UnityWebRequest.Put("http://10.128.125.10/Api/autification/login.php", json);

        request.SetRequestHeader("Content_type", "application/json");
        yield return(request.SendWebRequest());

        if (request.isNetworkError)
        {
            Debug.Log(request.error);
        }
        else
        {
            Debug.Log(request.downloadHandler.text);
            LoginResponseObject response = JsonUtility.FromJson <LoginResponseObject>(request.downloadHandler.text);
            if (response.jwt != null && response.jwt.Length > 200)
            {
                gameManager.LoadLevel("MainMenu");
            }
            else
            {
                Debug.Log("Token is not right");
            }
        }
    }
Example #3
0
        public LoginResponseObject ValidateUser(LoginRequestObject viewmodel)
        {
            LoginResponseObject objentity    = new LoginResponseObject();
            AppResponseView     objApp       = new AppResponseView();
            LoginResponseModel  objLoginResp = new LoginResponseModel();
            IAuthentication     _repository  = new DataAccess.Authentication.Authentication();

            objLoginResp           = _repository.ValidateUser(viewmodel.UserRequest);
            objentity.ResultObject = objLoginResp;
            if (objentity.ResultObject.Status == 1)
            {
                if (objentity.ResultObject.IsOTPverified == false)
                {
                    objentity.ResultObject.Status  = 0;
                    objentity.ResultObject.Message = "OTP Not Verified";
                }
                else
                {
                    objentity.ResultObject.Status  = 1;
                    objentity.ResultObject.Message = "Success";
                    objentity.ResultObject.user    = _repository.GetUserDetails(objentity.ResultObject.UserId);
                }
                //string OTP = GenerateNewOTP();
                //objLoginResp.OTP = OTP;
                //objentity.ResultObject = objLoginResp;
                //SMSService.SendSms(viewmodel.UserRequest.UserName, ("Login OTP " + objentity.ResultObject.OTP));
            }
            else
            {
                objentity.ResultObject.Message = "Invalid Credentials";
            }
            return(objentity);
        }
        public void CheckOutById()
        {
            ResetDb();
            SeedNewArticle("9999", "xxx", "keine", "Stk.", "Migros");
            SeedArticleUserSetting("9999", "Zu Hause von Tom", 1, 1);
            SeedStockEntry("9999", "Zu Hause von Tom", false, 2, DateTime.Now, DateTime.Now, 1);

            var queryObj = new
            {
                entryId = "1",
                amount  = "1"
            };

            LoginResponseObject loginSepp = WebClient.Login("sepp", "P@ssw0rd");
            HttpResponseMessage resultA   = WebClient.DeleteAsyncQuery("articles/CheckOutById", queryObj).Result;

            LoginResponseObject loginFritz = WebClient.Login("fritz", "P@ssw0rd");
            HttpResponseMessage resultB    = WebClient.DeleteAsyncQuery("articles/CheckOutById", queryObj).Result;

            LoginResponseObject loginTom = WebClient.Login("tom", "P@ssw0rd");
            HttpResponseMessage resultC  = WebClient.DeleteAsyncQuery("articles/CheckOutById", queryObj).Result;

            Assert.NotNull(loginSepp);
            Assert.NotNull(loginTom);
            Assert.NotNull(loginFritz);
            Assert.Equal(HttpStatusCode.Unauthorized, resultA.StatusCode);
            Assert.Equal(HttpStatusCode.Unauthorized, resultB.StatusCode);
            Assert.Equal(HttpStatusCode.NoContent, resultC.StatusCode);
        }
        public void GetArticleStock()
        {
            ResetDb();

            var queryParamsA = new
            {
                articleId     = "9999",
                environmentId = "2",
                pageNumber    = "1",
                itemsPerPage  = "10"
            };
            var queryParamsB = new
            {
                articleId     = "9999",
                environmentId = "1",
                pageNumber    = "1",
                itemsPerPage  = "10"
            };

            LoginResponseObject login   = WebClient.Login("sepp", "P@ssw0rd");
            HttpResponseMessage resultA = WebClient.GetAsyncQuery("articles/GetArticleStock/", queryParamsA).Result;
            HttpResponseMessage resultB = WebClient.GetAsyncQuery("articles/GetArticleStock/", queryParamsB).Result;

            LoginResponseObject loginFritz = WebClient.Login("fritz", "P@ssw0rd");
            HttpResponseMessage resultC    = WebClient.GetAsyncQuery("articles/GetArticleStock/", queryParamsA).Result;
            HttpResponseMessage resultD    = WebClient.GetAsyncQuery("articles/GetArticleStock/", queryParamsB).Result;

            Assert.NotNull(login);
            Assert.NotNull(loginFritz);
            Assert.Equal(HttpStatusCode.Unauthorized, resultA.StatusCode);
            Assert.Equal(HttpStatusCode.OK, resultB.StatusCode);
            Assert.Equal(HttpStatusCode.Unauthorized, resultC.StatusCode);
            Assert.Equal(HttpStatusCode.OK, resultD.StatusCode);
        }
        public void GetBaseDataWhenLoggedIn()
        {
            ResetDb();

            HttpResponseMessage resultA = WebClient.GetAsync("articles/GetBaseData").Result;

            LoginResponseObject login   = WebClient.Login("sepp", "P@ssw0rd");
            HttpResponseMessage resultB = WebClient.GetAsync("articles/GetBaseData").Result;

            Assert.NotNull(login);
            Assert.Equal(HttpStatusCode.OK, resultB.StatusCode);
            Assert.Equal(HttpStatusCode.Unauthorized, resultA.StatusCode);
        }
Example #7
0
        /// <summary>
        /// Setzt den verwendeten Bearer Token sowie PermissionsSerial und EnvironmentId Header
        /// im <see cref="client"/>.
        /// </summary>
        /// <param name="client"></param>
        /// <param name="login">Login Objekt mit den Token Informationen</param>
        /// <returns></returns>
        public static HttpClient UseLogin(this HttpClient client, LoginResponseObject login)
        {
            Claim serialClaim = JwtHelper.DecodeToken(login.PermissionsToken).Claims
                                .FirstOrDefault(c => c.Type == BeepClaimTypes.PermissionsSerial);
            Claim envId = JwtHelper.DecodeToken(login.PermissionsToken).Claims
                          .FirstOrDefault(c => c.Type == BeepClaimTypes.EnvironmentId);

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", login.IdentityToken);
            client.DefaultRequestHeaders.Remove(BeepClaimTypes.PermissionsSerial);
            client.DefaultRequestHeaders.Remove(BeepClaimTypes.EnvironmentId);
            client.DefaultRequestHeaders.Add(BeepClaimTypes.PermissionsSerial, serialClaim?.Value);
            client.DefaultRequestHeaders.Add(BeepClaimTypes.EnvironmentId, envId?.Value);
            return(client);
        }
Example #8
0
        public LoginResponseObject ChangePasswordNew(LoginRequestObject Request)
        {
            IAuthentication     _repository = new DataAccess.Authentication.Authentication();
            int                 result      = _repository.ChangePassword(Request.UserRequest);
            LoginResponseObject response    = new LoginResponseObject();

            if (result == 1)
            {
                LoginResponseModel model = new LoginResponseModel();
                model.Message         = "Password Updated Successfully";
                model.Status          = 1;
                response.ResultObject = model;
            }
            return(response);
        }
Example #9
0
        public void ManagerPermissionChange(int userId, int environmentId, bool expectedResult, string comment)
        {
            ResetDb();
            OutputWriter.WriteLine(comment);
            LoginResponseObject login = WebClient.Login("sepp", "P@ssw0rd");

            HttpResponseMessage result = WebClient.PutAsJsonAsync("users/SetPermission", new PermissionsDto()
            {
                UserId              = userId,
                EnvironmentId       = environmentId,
                EditArticleSettings = true
            }).Result;

            Assert.NotNull(login);
            Assert.Equal(expectedResult, result.IsSuccessStatusCode);
        }
        public LoginResponseObject Login(LoginFormData lgn, bool IsDesktop = false)
        {
            TransactionObject   loginResponse = CheckCreedientals(lgn);
            LoginResponseObject response      = new LoginResponseObject
            {
                TransactionObject = loginResponse
            };

            if (loginResponse.IsSuccess)
            {
                User currentUser = userManager.GetUserByUsername(lgn.Username);
                SetOnlineStatus(userManager.GetUser(currentUser.ID), true, IsDesktop);

                uow.Save();
                response.ID = currentUser.ID;
            }
            return(response);
        }
Example #11
0
    public async void Login(string accessKey = "")
    {
        if (accessKey.Length < 1 && !this.isRegisterd)
        {
            GameObject.Find("RegisterMenu").transform.Find("ErrorMessage").GetComponent <UnityEngine.UI.Text>().text = "Accesskey can not be empty!";
            return;
        }
        else if (this.isRegisterd)
        {
            accessKey = PlayerPrefs.GetString("accessKey");
        }

        FormUrlEncodedContent postData = new FormUrlEncodedContent(new[]
        {
            new KeyValuePair <string, string>("startupKey", accessKey),
            new KeyValuePair <string, string>("uniqueKey", accessKey),
        });

        HttpResponseMessage httpResponse = await client.PostAsync(serverUrl + "?action=login", postData);

        LoginResponseObject ro = LoginResponseObject.CreateFromJSON(await httpResponse.Content.ReadAsStringAsync());

        if (ro.username != null)
        {
            PlayerPrefs.SetString("username", ro.username);
            PlayerPrefs.SetString("accessKey", accessKey);
            this.accessKey = accessKey;
            string[] scoreStrings = ro.score.Split(' ');
            PlayerPrefs.SetInt("highscore_slow", int.Parse(scoreStrings[0]));
            PlayerPrefs.SetInt("highscore_norm", int.Parse(scoreStrings[1]));
            PlayerPrefs.SetInt("highscore_fast", int.Parse(scoreStrings[2]));
            this.isRegisterd = true;
            GameObject.Find("RegisterMenu").SetActive(false);
        }
        else
        {
            GameObject.Find("RegisterMenu").transform.Find("ErrorMessage").GetComponent <UnityEngine.UI.Text>().text = ro.responseCode + " : " + ro.msg;
            Debug.LogError(ro.responseCode + " : " + ro.msg);
        }
    }
        public void GetArticleDateSuggestion()
        {
            ResetDb();

            SeedNewArticle("9999", "Dummy", "keine", "Stk.", "Migros");
            SeedArticleUserSetting("9999", "Zu Hause von Sepp", 1, 1);
            SeedStockEntry("9999", "Zu Hause von Sepp", false, 1, DateTime.Now, DateTime.Now, 1);

            LoginResponseObject login   = WebClient.Login("sepp", "P@ssw0rd");
            HttpResponseMessage resultA = WebClient.GetAsync("articles/GetArticleDateSuggestions/9999/2").Result;
            HttpResponseMessage resultB = WebClient.GetAsync("articles/GetArticleDateSuggestions/9999/1").Result;

            LoginResponseObject loginFritz = WebClient.Login("fritz", "P@ssw0rd");
            HttpResponseMessage resultC    = WebClient.GetAsync("articles/GetArticleDateSuggestions/9999/2").Result;
            HttpResponseMessage resultD    = WebClient.GetAsync("articles/GetArticleDateSuggestions/9999/1").Result;

            Assert.NotNull(login);
            Assert.NotNull(loginFritz);
            Assert.Equal(HttpStatusCode.Unauthorized, resultA.StatusCode);
            Assert.Equal(HttpStatusCode.OK, resultB.StatusCode);
            Assert.Equal(HttpStatusCode.Unauthorized, resultC.StatusCode);
            Assert.Equal(HttpStatusCode.OK, resultD.StatusCode);
        }
        public void GetArticlesNoMember()
        {
            ResetDb();
            LoginResponseObject login   = WebClient.Login("sepp", "P@ssw0rd");
            HttpResponseMessage resultA =
                WebClient.GetAsyncQuery("articles/GetArticles", new { EnvironmentId = 2 }).Result;
            HttpResponseMessage resultB =
                WebClient.GetAsyncQuery("articles/GetArticles", new { EnvironmentId = 1 }).Result;

            LoginResponseObject loginFritz = WebClient.Login("fritz", "P@ssw0rd");
            HttpResponseMessage resultC    =
                WebClient.GetAsyncQuery("articles/GetArticles", new { EnvironmentId = 2 }).Result;
            HttpResponseMessage resultD =
                WebClient.GetAsyncQuery("articles/GetArticles", new { EnvironmentId = 1 }).Result;


            Assert.NotNull(login);
            Assert.NotNull(loginFritz);
            Assert.Equal(HttpStatusCode.Unauthorized, resultA.StatusCode);
            Assert.Equal(HttpStatusCode.Unauthorized, resultC.StatusCode);
            Assert.Equal(HttpStatusCode.OK, resultB.StatusCode);
            Assert.Equal(HttpStatusCode.OK, resultD.StatusCode);
        }
        public void OpenArticle()
        {
            ResetDb();
            SeedNewArticle("9999", "xxx", "keine", "Stk.", "Migros");
            SeedArticleUserSetting("9999", "Zu Hause von Tom", 1, 1);
            SeedStockEntry("9999", "Zu Hause von Tom", false, 2, DateTime.Now, DateTime.Now, 1);

            var sevDto = new StockEntryValueDto
            {
                Id                   = 1,
                EnvironmentId        = 2,
                AmountOnStock        = 2,
                ExpireDate           = DateTime.Now,
                ArticleId            = 1,
                IsOpened             = false,
                OpenedOn             = DateTime.Now,
                AmountRemaining      = 0.5f,
                ClientTimezoneOffset = 0
            };

            LoginResponseObject loginSepp = WebClient.Login("sepp", "P@ssw0rd");
            HttpResponseMessage resultA   = WebClient.PutAsJsonAsync("articles/OpenArticle", sevDto).Result;

            LoginResponseObject loginFritz = WebClient.Login("fritz", "P@ssw0rd");
            HttpResponseMessage resultB    = WebClient.PutAsJsonAsync("articles/OpenArticle", sevDto).Result;

            LoginResponseObject loginTom = WebClient.Login("tom", "P@ssw0rd");
            HttpResponseMessage resultC  = WebClient.PutAsJsonAsync("articles/OpenArticle", sevDto).Result;

            Assert.NotNull(loginSepp);
            Assert.NotNull(loginTom);
            Assert.NotNull(loginFritz);
            Assert.Equal(HttpStatusCode.Unauthorized, resultA.StatusCode);
            Assert.Equal(HttpStatusCode.Unauthorized, resultB.StatusCode);
            Assert.Equal(HttpStatusCode.NoContent, resultC.StatusCode);
        }
Example #15
0
        private async void OnButtonSubmit(object sender, EventArgs e)
        {
            //if (CrossConnectivity.Current.IsConnected)
            //{
            //await Navigation.PushModalAsync(new F4HApp.MP());
            var    MobileNo      = txtMobileNo.Text;
            var    Password      = txtPassword.Text;
            string MemberID      = "";
            string MemberName    = "";
            string IsLoggedIn    = "Fail";
            string Msg           = "Invalid Login";
            string LastLoginDate = "";

            if (MobileNo == null)
            {
                await DisplayAlert("Validation Error", "Username cannot be blank", "Re-try");

                return;
            }

            if (Password == null)
            {
                await DisplayAlert("Validation Error", "Password cannot be blank", "Re-try");

                return;
            }

            dsLogin = new F4HApp.dataservice.DSLogin();
            string result = await dsLogin.ChkLogin(MobileNo, Password);

            LoginResponseObject m = JsonConvert.DeserializeObject <LoginResponseObject>(result.Replace("[", "").Replace("]", ""));

            IsLoggedIn    = m.IsLoggedIn.ToString();
            MemberID      = m.MemberId;
            MemberName    = m.Name;
            Msg           = m.Msg;
            LastLoginDate = m.LastLoginDate;

            if (IsLoggedIn == "Success")
            {
                App.IsLoggedIn    = true;
                App.MemberID      = MemberID;
                App.MemberName    = MemberName;
                App.LastLoginDate = LastLoginDate;
                App.MobileNumber  = txtMobileNo.Text.Trim();
                await Navigation.PushModalAsync(new F4HApp.MP());
            }
            else
            {
                await DisplayAlert("Validation Error", "Invalid login attempt", "Re-try");
            }


            //try
            //{
            //    var content = "";
            //    HttpClient client = new HttpClient();
            //    var RestURL = "http://www.khubisolutions.com/f4hrestapi/api/home";
            //    client.BaseAddress = new Uri(RestURL);
            //    client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
            //    HttpResponseMessage response = await client.GetAsync(RestURL);
            //    content = await response.Content.ReadAsStringAsync();
            //    //var Items = JsonConvert.DeserializeObject<List<ItemClass>>(content);
            //    //ListView1.ItemsSource = Items;
            //}
            //catch(Exception ex)
            //{
            //    string rr = ex.Message.ToString();
            //}
            //}
            //else
            //{
            //    await DisplayAlert("Conection Error", "Internet Conection Wifi/Mobile Data is currently inactive. Try again later.", "Re-try");
            //}
        }
        public void NotificationTest()
        {
            /* 1. Join Env
             * 2. Login user and switch to Tom's env
             * 3. Login Owner
             * 4. Change Permissions
             * 5. Verify Header
             * 6. Udpate token
             * 7. Verify new Permissions
             * 8. Verify Header*/

            ResetDb();
            var initialPermissions = new Permission()
            {
                CanScan = true, EditArticleSettings = true
            };

            JoinEnvironment("sepp", "Zu Hause von Tom", initialPermissions);

            LoginResponseObject loginSepp = WebClient.Login("sepp", "P@ssw0rd");
            //Switch to other Environment
            HttpResponseMessage changeEnvironmentResult =
                WebClient.GetAsync($"auth/UpdatePermissionClaims/{loginSepp.MappedUser.Id}/?environmentId=2").Result;

            loginSepp.PermissionsToken = JObject.Parse(changeEnvironmentResult.Content.ReadAsStringAsync().Result)
                                         .ToObject <LoginResponseObject>().PermissionsToken;

            //Set new Permissions
            var newPermission = new PermissionsDto()
            {
                UserId              = loginSepp.MappedUser.Id,
                EnvironmentId       = 2,
                CanScan             = true,
                EditArticleSettings = true,
                ManageUsers         = true // New
            };

            WebClient.Login("tom", "P@ssw0rd");
            HttpResponseMessage setPermissionsResult =
                WebClient.PutAsJsonAsync("users/SetPermission", newPermission).Result;

            //Execute some Action to trigger permissions changed notification
            HttpResponseMessage invitationsCountResult = WebClient.UseLogin(loginSepp)
                                                         .GetAsync($"users/InvitationsCount/{loginSepp.MappedUser.Id}").Result;

            //Update the Token
            HttpResponseMessage updateTokenResult = WebClient.GetAsync(
                $"auth/UpdatePermissionClaims/{loginSepp.MappedUser.Id}/?environmentId=2").Result;

            loginSepp.PermissionsToken = JObject.Parse(updateTokenResult.Content.ReadAsStringAsync().Result)
                                         .ToObject <LoginResponseObject>().PermissionsToken;
            JwtSecurityToken token = JwtHelper.DecodeToken(loginSepp.PermissionsToken);
            string           updatedPermissions = token.Claims.FirstOrDefault(c => c.Type == BeepClaimTypes.Permissions)?.Value;

            //Execute another action to verify permissions changed notification is gone
            HttpResponseMessage noPermissionsChangedHeader = WebClient.UseLogin(loginSepp)
                                                             .GetAsync($"users/InvitationsCount/{loginSepp.MappedUser.Id}").Result;


            Assert.True(changeEnvironmentResult.IsSuccessStatusCode);
            Assert.True(setPermissionsResult.IsSuccessStatusCode);

            Assert.NotNull(invitationsCountResult.Headers.FirstOrDefault(h => h.Key == "PermissionsChanged").Value);
            Assert.Equal(newPermission.ToBits(), updatedPermissions);
            Assert.Null(noPermissionsChangedHeader.Headers.FirstOrDefault(h => h.Key == "PermissionsChanged").Value);
        }