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> 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)); }