public TracktorWebModel Update(ManageInfoViewModel userModel) { var userManager = Request.GetOwinContext().GetUserManager <ApplicationUserManager>(); ApplicationUser user = userManager.FindById(User.Identity.GetUserId()); if (user != null) { user.TimeZone = userModel.TimeZone; userManager.Update(user); } return(GenerateWebModel()); }
public async Task <IHttpActionResult> GetManageInfo(string returnUrl, bool generateState = false) { IdentityUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); if (user == null) { return(NotFound()); } List <UserLoginInfoViewModel> logins = new List <UserLoginInfoViewModel>(); foreach (IdentityUserLogin linkedAccount in user.Logins) { logins.Add(new UserLoginInfoViewModel { LoginProvider = linkedAccount.LoginProvider, ProviderKey = linkedAccount.ProviderKey }); } if (user.PasswordHash != null) { logins.Add(new UserLoginInfoViewModel { LoginProvider = LocalLoginProvider, ProviderKey = user.UserName, }); } ManageInfoViewModel manageInfo = new ManageInfoViewModel { LocalLoginProvider = LocalLoginProvider, UserName = user.UserName, Logins = logins, ExternalLoginProviders = GetExternalLogins(returnUrl, generateState) }; return(Ok(manageInfo)); }
private async void WebViewOnNavigated(object sender, WebNavigatedEventArgs e) { string accessToken = ExtractAccessTokenFromUrl(e.Url); if (accessToken != "") { AccountClient accountClient = new AccountClient(await ApiHelper.GetApiClient()); ManageInfoViewModel manageInfoViewModel = await accountClient.GetManageInfoAsync("/", true); if (manageInfoViewModel != null && manageInfoViewModel.Logins.Count > 0) { //ottengo l'id dell'utente di facebook. string idFacebookUser = ((UserLoginInfoViewModel)manageInfoViewModel.Logins.First()).ProviderKey; var requestUrl = $"https://graph.facebook.com/v2.7/{idFacebookUser}/permissions/email?&access_token={accessToken}"; //Elimino i permessi di facebook HttpClient httpFacebookClient = new HttpClient(); HttpResponseMessage httpResponseMessage = await httpFacebookClient.DeleteAsync(requestUrl); //Rimuovo il token Api.ApiHelper.RemoveSettings(); if (httpResponseMessage != null && httpResponseMessage.StatusCode == System.Net.HttpStatusCode.OK) { //eseguo il logout. await accountClient.LogoutAsync(); //torno alla pagina di login. Application.Current.MainPage = new NavigationPage(new Login.Login()); } } } }
public async Task<IHttpActionResult> GetManageInfo(string returnUrl, bool generateState = false) { IdentityUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); if (user == null) { return NotFound(); } List<UserLoginInfoViewModel> logins = new List<UserLoginInfoViewModel>(); foreach (IdentityUserLogin linkedAccount in user.Logins) { logins.Add(new UserLoginInfoViewModel { LoginProvider = linkedAccount.LoginProvider, ProviderKey = linkedAccount.ProviderKey }); } if (user.PasswordHash != null) { logins.Add(new UserLoginInfoViewModel { LoginProvider = LocalLoginProvider, ProviderKey = user.UserName, }); } ManageInfoViewModel manageInfo = new ManageInfoViewModel { LocalLoginProvider = LocalLoginProvider, UserName = user.UserName, Logins = logins, ExternalLoginProviders = GetExternalLogins(returnUrl, generateState) }; return Ok(manageInfo); }
// PUT api/values/5 public void Put(int id, [FromBody] ManageInfoViewModel user) { Users[id] = user; }
// POST api/values public void Post([FromBody] ManageInfoViewModel value) { Users.Add(value); }
public void Init() { instance = new ManageInfoViewModel(); }