internal async Task <HttpResponseMessage> UpdateUser(OktaUserModel oktaUser) { string url = _Config.Value.Okta_OrgUri + $"/api/v1/users/{HttpUtility.UrlEncode(oktaUser.profile.login)}"; client.DefaultRequestHeaders.Clear(); client.DefaultRequestHeaders.Add("Authorization", "SSWS " + _Config.Value.Okta_APIToken); var postContent = new StringContent(JsonConvert.SerializeObject(oktaUser), Encoding.UTF8, "application/json"); return(await client.PostAsync(url, postContent)); }
public async Task <IActionResult> EditProfile(string key) { string userName = User.Claims .FirstOrDefault(x => x.Type == "preferred_username") ?.Value.ToString(); OktaHelper oktaHelper = new OktaHelper(_Config); var result = await oktaHelper.GetOktaUser(userName); if (result.IsSuccessStatusCode) { JObject user = oktaHelper.GetJsonObject(result); OktaUserModel oktaUser = user.ToObject <OktaUserModel>(); oktaUser.Key = key; oktaUser.profile.login = userName; return(View($"~/Views/Profile/EditProfile.cshtml", oktaUser)); } return(View()); }
public async Task <IActionResult> EditProfile(OktaUserModel oktaUser) { if (ModelState.IsValid) { OktaHelper oktaHelper = new OktaHelper(_Config); var result = await oktaHelper.UpdateUser(oktaUser); if (result.IsSuccessStatusCode) { //TempData["Message"] = "Profile is updated successfully."; return(RedirectToAction("EditProfileMessage", "Profile", new { key = oktaUser.Key, status = "success" })); } else { ModelState.AddModelError("Error", result.ReasonPhrase); return(View($"~/Views/Profile/EditProfile.cshtml", oktaUser)); } } else { ModelState.AddModelError("Error", "Sorry, we found some errors. Please review the form and make corrections."); return(View($"~/Views/Profile/EditProfile.cshtml", oktaUser)); } }