/**************************************************************************************************************** * 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); }
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); } } } } }
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); }
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); }
static void Main(string[] args) { Console.WriteLine("Enter Username: "******"Enter Password: "******"Error Occurred:{0}, {1}", accessToken.Error, accessToken.ErrorDescription); } }
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); }
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; } } }