public async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ExampleUser { UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { // Add "User" role after success registeration var currentUser = UserManager.FindByName(user.UserName); await UserManager.AddToRoleAsync(currentUser.Id, UserRoles.User); await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); return(RedirectToAction("Index", "Forum")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public Task <ExampleUser> GetUserByIdAsync(string userId) { var exampleUser = new ExampleUser { Name = "Test User", Id = userId }; return(Task.FromResult(exampleUser)); }
public static bool CanManageMessage(this IPrincipal user, ExampleUser author) { if (!HttpContext.Current.Request.IsAuthenticated) { return(false); } if (author != null && author.Id == ExampleContext.Current.User.Id) { return(true); } return(user.IsInRole(UserRoles.Administrator) || user.IsInRole(UserRoles.Moderator)); }
public async Task <ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl) { if (User.Identity.IsAuthenticated) { return(RedirectToAction("Index", "Manage")); } if (ModelState.IsValid) { // Get the information about the user from the external login provider var info = await AuthenticationManager.GetExternalLoginInfoAsync(); if (info == null) { return(View("ExternalLoginFailure")); } var user = new ExampleUser { UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user); if (result.Succeeded) { result = await UserManager.AddLoginAsync(user.Id, info.Login); if (result.Succeeded) { // Add "User" role after success registeration var currentUser = UserManager.FindByName(user.UserName); await UserManager.AddToRoleAsync(currentUser.Id, UserRoles.User); await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); return(RedirectToLocal(returnUrl)); } } AddErrors(result); } ViewBag.ReturnUrl = returnUrl; return(View(model)); }
public void SeedUsersAndRoles() { #region Roles var anonymousRole = new IdentityRole(UserRoles.Anonymous); var userRole = new IdentityRole(UserRoles.User); var moderatorRole = new IdentityRole(UserRoles.Moderator); var administratorRole = new IdentityRole(UserRoles.Administrator); _dbContext.Roles.AddOrUpdate(anonymousRole); _dbContext.Roles.AddOrUpdate(userRole); _dbContext.Roles.AddOrUpdate(moderatorRole); _dbContext.Roles.AddOrUpdate(administratorRole); _dbContext.SaveChanges(); #endregion #region Users var hasher = new PasswordHasher(); var administrator = new ExampleUser { Id = "Administrator", FullName = "Administrator", UserName = "******", Email = "*****@*****.**", PasswordHash = hasher.HashPassword("Password!1"), LockoutEnabled = false, AccessFailedCount = 0, SecurityStamp = Guid.NewGuid().ToString() }; _dbContext.Users.AddOrUpdate(administrator); var moderator = new ExampleUser { Id = "Moderator", FullName = "Moderator", UserName = "******", Email = "*****@*****.**", PasswordHash = hasher.HashPassword("Password!1"), LockoutEnabled = false, AccessFailedCount = 0, SecurityStamp = Guid.NewGuid().ToString() }; _dbContext.Users.AddOrUpdate(moderator); var user1 = new ExampleUser { Id = "User1", FullName = "User One", UserName = "******", Email = "*****@*****.**", PasswordHash = hasher.HashPassword("Password!1"), LockoutEnabled = false, AccessFailedCount = 0, SecurityStamp = Guid.NewGuid().ToString() }; _dbContext.Users.AddOrUpdate(user1); var user2 = new ExampleUser { Id = "User2", FullName = "User Two", UserName = "******", Email = "*****@*****.**", PasswordHash = hasher.HashPassword("Password!1"), LockoutEnabled = false, AccessFailedCount = 0, SecurityStamp = Guid.NewGuid().ToString() }; _dbContext.Users.AddOrUpdate(user2); var user3 = new ExampleUser { Id = "User3", FullName = "User Three", UserName = "******", Email = "*****@*****.**", PasswordHash = hasher.HashPassword("Password!1"), LockoutEnabled = false, AccessFailedCount = 0, SecurityStamp = Guid.NewGuid().ToString() }; _dbContext.Users.AddOrUpdate(user3); SaveChanges(); #endregion _dbContext.UserRoles.AddOrUpdate(new IdentityUserRole { RoleId = administratorRole.Id, UserId = administrator.Id }); _dbContext.UserRoles.AddOrUpdate(new IdentityUserRole { RoleId = moderatorRole.Id, UserId = moderator.Id }); _dbContext.UserRoles.AddOrUpdate(new IdentityUserRole { RoleId = userRole.Id, UserId = user1.Id }); _dbContext.UserRoles.AddOrUpdate(new IdentityUserRole { RoleId = userRole.Id, UserId = user2.Id }); _dbContext.UserRoles.AddOrUpdate(new IdentityUserRole { RoleId = userRole.Id, UserId = user3.Id }); SaveChanges(); }