public async Task <ActionResult> Logowanie(LogowanieViewModel model, string returnUrl) { if (!ModelState.IsValid) { return(View(model)); } var rezultat = await LogowanieZarzadzanie.PasswordSignInAsync(model.Login, model.Haslo, model.ZapamietajMnie, shouldLockout : false); if (rezultat == SignInStatus.Success) { var uzytkownik = dbContext.Users.FirstOrDefault(x => x.UserName == model.Login); if (UzytkownikZarzadzanie.IsEmailConfirmedAsync(uzytkownik.Id).Result == false) { rezultat = SignInStatus.LockedOut; AutoryzacjaZarzadzanie.SignOut(DefaultAuthenticationTypes.ApplicationCookie); } } switch (rezultat) { case SignInStatus.Success: return(RedirectToLocal(returnUrl)); case SignInStatus.LockedOut: return(View("Lockout")); case SignInStatus.RequiresVerification: return(RedirectToAction("WyslijKod", new { ReturnUrl = returnUrl, ZapamietajMnie = model.ZapamietajMnie })); case SignInStatus.Failure: default: ModelState.AddModelError("", "Invalid login Attempt."); return(View(model)); } }
public async Task <ActionResult> ZewnetrznyLoginPowrot(string zwrocUrl) { var loginInfo = await AutoryzacjaZarzadzanie.GetExternalLoginInfoAsync(); if (loginInfo == null) { return(RedirectToAction("Login")); } var rezultat = await LogowanieZarzadzanie.ExternalSignInAsync(loginInfo, isPersistent : false); switch (rezultat) { case SignInStatus.Success: return(RedirectToLocal(zwrocUrl)); case SignInStatus.LockedOut: return(View("Lockout")); case SignInStatus.RequiresVerification: return(RedirectToAction("WyslijKod", new { ReturnUrl = zwrocUrl, RememberMe = false })); case SignInStatus.Failure: default: ViewBag.ReturnUrl = zwrocUrl; ViewBag.LoginProvider = loginInfo.Login.LoginProvider; return(View("ZewnetrznyLoginPotwierdzenie", new ZewnetrznePotwierdzenieLogowaniaViewModel { Email = loginInfo.Email })); } }
public async Task <ActionResult> Weryfikacja(string provider, string returnUrl, bool zapamietajMnie) { if (!await LogowanieZarzadzanie.HasBeenVerifiedAsync()) { return(View("Error")); } return(View(new WeryfikacjaKoduViewModel { Provider = provider, ZwrocUrl = returnUrl, ZapamietajMnie = zapamietajMnie })); }
public async Task <ActionResult> DisableTwoFactorAuthentication() { await UzytkownikZarzadzanie.SetTwoFactorEnabledAsync(User.Identity.GetUserId(), false); var user = await UzytkownikZarzadzanie.FindByIdAsync(User.Identity.GetUserId()); if (user != null) { await LogowanieZarzadzanie.SignInAsync(user, isPersistent : false, rememberBrowser : false); } return(RedirectToAction("Index", "Zarzadzanie")); }
public async Task <ActionResult> WyslijKod(WyslijKodViewModel model) { if (!ModelState.IsValid) { return(View()); } if (!await LogowanieZarzadzanie.SendTwoFactorCodeAsync(model.SelectedProvider)) { return(View("Błąd")); } return(RedirectToAction("KodWeryfikujacy", new { Provider = model.SelectedProvider, ReturnUrl = model.ZwrocUrl, RememberMe = model.ZapamietajMnie })); }
public async Task <ActionResult> WyslijKod(string zwrocUrl, bool zapamietajMnie) { var uzytkownikId = await LogowanieZarzadzanie.GetVerifiedUserIdAsync(); if (uzytkownikId == null) { return(View("Błąd")); } var uzytkownikFactor = await UzytkownikZarzadzanie.GetValidTwoFactorProvidersAsync(uzytkownikId); var factorOptions = uzytkownikFactor.Select(purpose => new SelectListItem { Text = purpose, Value = purpose }).ToList(); return(View(new WyslijKodViewModel { Providers = factorOptions, ZwrocUrl = zwrocUrl, ZapamietajMnie = zapamietajMnie })); }
public async Task <ActionResult> UstawHaslo(UstawHasloViewModel model) { if (ModelState.IsValid) { var rezultat = await UzytkownikZarzadzanie.AddPasswordAsync(User.Identity.GetUserId(), model.NoweHaslo); if (rezultat.Succeeded) { var uzytkownik = await UzytkownikZarzadzanie.FindByIdAsync(User.Identity.GetUserId()); if (uzytkownik != null) { await LogowanieZarzadzanie.SignInAsync(uzytkownik, isPersistent : false, rememberBrowser : false); } return(RedirectToAction("Index", new { Wiadomosc = ZarzadzanieWiadomosciaId.UstawienieHaslaPowodzenie })); } AddErrors(rezultat); } return(View(model)); }
public async Task <ActionResult> UsunLogin(string loginProvider, string providerKey) { ZarzadzanieWiadomosciaId?wiadomosc; var rezultat = await UzytkownikZarzadzanie.RemoveLoginAsync(User.Identity.GetUserId(), new UserLoginInfo(loginProvider, providerKey)); if (rezultat.Succeeded) { var uzytkownik = await UzytkownikZarzadzanie.FindByIdAsync(User.Identity.GetUserId()); if (uzytkownik != null) { await LogowanieZarzadzanie.SignInAsync(uzytkownik, isPersistent : false, rememberBrowser : false); } wiadomosc = ZarzadzanieWiadomosciaId.UsuniecieLoginiuPowodzenie; } else { wiadomosc = ZarzadzanieWiadomosciaId.Error; } return(RedirectToAction("ZarzadzanieLoginami", new { Wiadomosc = wiadomosc })); }
public async Task <ActionResult> ZewnetrznePotwierdzenieLogowania(ZewnetrznePotwierdzenieLogowaniaViewModel model, string zwrocUrl) { if (User.Identity.IsAuthenticated) { return(RedirectToAction("Index", "Zarzadzaj")); } if (ModelState.IsValid) { var info = await AutoryzacjaZarzadzanie.GetExternalLoginInfoAsync(); if (info == null) { return(View("ZewnetrzneLogowanieNiepowodzenie")); } var uzytkownik = new Uzytkownik { UserName = model.Email, Email = model.Email }; var rezultat = await UzytkownikZarzadzanie.CreateAsync(uzytkownik); if (rezultat.Succeeded) { rezultat = await UzytkownikZarzadzanie.AddLoginAsync(uzytkownik.Id, info.Login); if (rezultat.Succeeded) { await LogowanieZarzadzanie.SignInAsync(uzytkownik, isPersistent : false, rememberBrowser : false); return(RedirectToLocal(zwrocUrl)); } } AddError(rezultat); } ViewBag.ReturnUrl = zwrocUrl; return(View(model)); }
public async Task <ActionResult> Weryfikacja(WeryfikacjaKoduViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var rezultat = await LogowanieZarzadzanie.TwoFactorSignInAsync(model.Provider, model.Kod, model.ZapamietajMnie, model.ZapamietajPrzegladarke); switch (rezultat) { case SignInStatus.Success: return(RedirectToLocal(model.ZwrocUrl)); case SignInStatus.LockedOut: return(View("Lockout")); case SignInStatus.Failure: default: ModelState.AddModelError("", "Błędny kod"); return(View(model)); } }