コード例 #1
0
        /****************************************************************************************************************
        *                                   Metoder vedrørende systembrugere                                           *
        * **************************************************************************************************************/

        // Log systembruger ind
        public async Task <UserDTO> LoginAsync(string username, SecureString securePassword)
        {
            // Der sendes en forespørgsel til autentificerings-endpoint med henblik på at få en access token
            HttpResponseMessage response = await client.PostAsync("oauth/token",
                                                                  new StringContent(string.Format("grant_type=password&username={0}&password={1}", username,
                                                                                                  SecureStringToString(securePassword)), Encoding.UTF8,
                                                                                    "application/x-www-form-urlencoded"));

            // Hvis login-oplysninger er korrekte svares der med statuskode 200
            if (response.IsSuccessStatusCode)
            {
                // Resultatet parses
                string resultJSON = await response.Content.ReadAsStringAsync();

                LoginTokenResult result = JsonConvert.DeserializeObject <LoginTokenResult>(resultJSON);

                // Den access token der er modtaget, sættes som autorisations-header på klienten.
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);

                // Den autoriserede bruger kan nu hente sine egne oplysninger
                HttpResponseMessage response2 = await client.GetAsync("api/users/me");

                if (response2.IsSuccessStatusCode)
                {
                    UserDTO user = JsonConvert.DeserializeObject <UserDTO>(await response2.Content.ReadAsStringAsync());
                    return(user);
                }
            }
            return(null);
        }
コード例 #2
0
        private async void Authenticate(string username, string code)
        {
            LoadingMsg.Text = Message.User_Validation;
            List <User>      users        = Entities.Database.SelectAllUsers();
            LoginTokenResult Token        = new LoginTokenResult();
            string           error        = string.Empty;
            string           Token_Result = string.Empty;

            if (users == null)
            {
                Token        = Json.GetLoginToken(username, code);
                error        = Constants.NullRemove(Token.ErrorDescription);
                Token_Result = Constants.NullRemove(Token.AccessToken);
                if (Token_Result == string.Empty)
                {
                    await DisplayAlert(Message.Login_Header, error, Message.Ok);

                    IsBusy = false;
                    LoadingMsg.IsVisible = false;
                }
                else
                {
                    User user = new User()
                    {
                        User_name = username,
                        Code      = code
                    };
                    Entities.Database.InsertUser(user);
                    FinalNavigation(user.User_name);
                }
            }
            else
            {
                foreach (var user in users)
                {
                    if (user.User_name.Equals(username) && user.Code.Equals(code))
                    {
                        Token        = Json.GetLoginToken(username, code);
                        error        = "You have entered an old password, Please enter the current password";
                        Token_Result = Constants.NullRemove(Token.AccessToken);
                        if (Token_Result == string.Empty)
                        {
                            await DisplayAlert(Message.Login_Header, error, Message.Ok);

                            IsBusy = false;
                            LoadingMsg.IsVisible = false;
                        }
                        else
                        {
                            FinalNavigation(user.User_name);
                        }
                    }
                }
            }
        }
コード例 #3
0
ファイル: Json.cs プロジェクト: WaiswaK/HPMS
        public static LoginTokenResult GetLoginToken(string username, string password)
        {
            HttpClient client = new HttpClient()
            {
                BaseAddress = new Uri(Constants.hostUrl)
            };
            HttpResponseMessage response =
                client.PostAsync("Token",
                                 new StringContent(string.Format("grant_type=password&username={0}&password={1}",
                                                                 username,
                                                                 password,
                                                                 "application/x-www-form-urlencoded"))).Result;
            string           resultJSON = response.Content.ReadAsStringAsync().Result;
            LoginTokenResult result     = Newtonsoft.Json.JsonConvert.DeserializeObject <LoginTokenResult>(resultJSON);

            return(result);
        }
コード例 #4
0
        private static LoginTokenResult GetLoginToken(string username, string password)
        {
            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri(baseUrl);
            //TokenRequestViewModel tokenRequest = new TokenRequestViewModel() {
            //password=userInfo.Password, username=userInfo.UserName};
            HttpResponseMessage response =
                client.PostAsync("Token",
                                 new StringContent(string.Format("grant_type=password&username={0}&password={1}",
                                                                 HttpUtility.UrlEncode(username),
                                                                 HttpUtility.UrlEncode(password)), Encoding.UTF8,
                                                   "application/x-www-form-urlencoded")).Result;

            string           resultJSON = response.Content.ReadAsStringAsync().Result;
            LoginTokenResult result     = JsonConvert.DeserializeObject <LoginTokenResult>(resultJSON);

            return(result);
        }
コード例 #5
0
        static void Main(string[] args)
        {
            Console.WriteLine("Enter Username: "******"Enter Password: "******"Error Occurred:{0}, {1}", accessToken.Error, accessToken.ErrorDescription);
            }
        }
コード例 #6
0
        private static LoginTokenResult GetLoginToken(string username, string password, string baseUrl)
        {
            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri(baseUrl);
            HttpResponseMessage response =
                client.PostAsync("Token",
                                 new StringContent(string.Format("grant_type=password&username={0}&password={1}",
                                                                 HttpUtility.UrlEncode(username),
                                                                 HttpUtility.UrlEncode(password)), Encoding.UTF8,
                                                   "application/x-www-form-urlencoded")).Result;

            string resultJSON = response.Content.ReadAsStringAsync().Result;

            string[]         partes = resultJSON.Split('"');
            LoginTokenResult result = JsonConvert.DeserializeObject <LoginTokenResult>(partes[3]);

            return(result);
        }
コード例 #7
0
        private async void RegisterAction(string username, string code, string confirm)
        {
            LoginTokenResult Token        = new LoginTokenResult();
            string           error        = string.Empty;
            string           Token_Result = string.Empty;

            if (username == string.Empty || code == string.Empty || confirm == string.Empty)
            {
                await DisplayAlert(Message.RegisterUser, Message.NoRegisterdetails, Message.Ok);

                LoadingMsg.IsVisible = false;
                IsBusy = false;
            }
            else
            {
                LoadingMsg.IsVisible = true;
                LoadingMsg.Text      = Message.Checking_Connection;

                string connected = await Plugin.Connectivity.CrossConnectivity.Current.
                                   IsRemoteReachable(Constants.baseUrl, Constants.port) ? "Reachable" : "Not reachable";

                if (connected == "Reachable")
                {
                    LoadingMsg.Text = Message.Connection_Established;
                    IPM.Models.Registration reg = await Json.GetLoginToken(username, code, confirm);

                    if (reg == null)
                    {
                        Token        = Json.GetLoginToken(username, code);
                        error        = "You have entered an old password, Please enter the current password";
                        Token_Result = Constants.NullRemove(Token.AccessToken);
                        if (Token_Result == string.Empty)
                        {
                            await DisplayAlert(Message.RegisterUser, Message.Registration_wrong, Message.Ok);

                            IsBusy = false;
                            LoadingMsg.IsVisible = false;
                        }
                        else
                        {
                            User user = new User()
                            {
                                User_name = username,
                                Code      = code
                            };
                            Entities.Database.InsertUser(user);
                            FinalNavigation(user.User_name);
                        }
                    }
                    else
                    {
                        await DisplayAlert(Message.RegisterUser, ModelStateError(reg), Message.Ok);

                        IsBusy = false;
                        LoadingMsg.IsVisible = false;
                    }
                }
                else
                {
                    await DisplayAlert(Message.RegisterUser, Message.Register_Message_Fail, Message.Ok);

                    IsBusy = false;
                    LoadingMsg.IsVisible = false;
                }
            }
        }