public ActionResult Kreiranje(NoviKorisnikModel model) { if (ModelState.IsValid) { RokovnikUser newUser = new RokovnikUser { UserName = model.Username, OsobaId = -1 }; var result = UserManager.Create(newUser, model.Password); if (result.Succeeded) { Osoba newOsoba = new Osoba { Ime = model.Ime, Prezime = model.Prezime, NazivRokovnika = "Novi rokovnik", OpisRokovnika = "Prazni opis rokovnika", DatumRodjenja = model.DatumRodjenja }; newUser.OsobaId = Repository.AddOsoba(newOsoba); UserManager.Update(newUser); ClaimsIdentity identity = CreateIdentityWithClaims(newUser, newOsoba); AuthenticationManager.SignIn(new AuthenticationProperties(), identity); return RedirectToAction("Index", "Rokovnik"); } else { ModelState.AddModelError("type", "danger"); ModelState.AddModelError("", "Korisničko ime je zauzeto! Pokušaj s drugim imenom."); return View(model); } } else { return View(model); } }
private ClaimsIdentity CreateIdentityWithClaims(RokovnikUser user, Osoba osoba) { ClaimsIdentity identity = UserManager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie); identity.AddClaim(new Claim("OsobaId", user.OsobaId.ToString("D"))); identity.AddClaim(new Claim("OsobaIme", osoba.Ime)); identity.AddClaim(new Claim("OsobaPrezime", osoba.Prezime)); identity.AddClaim(new Claim("OsobaNazivRokovnika", osoba.NazivRokovnika)); identity.AddClaim(new Claim("OsobaOpisRokovnika", osoba.OpisRokovnika)); return identity; }