示例#1
0
 public void RemoveLogin(string loginProvider, string providerKey)
 {
     UserManager manager = new UserManager();
     var result = manager.RemoveLogin(User.Identity.GetUserId(), new UserLoginInfo(loginProvider, providerKey));
     var msg = result.Succeeded
         ? "?m=RemoveLoginSuccess"
         : String.Empty;
     Response.Redirect("~/Account/Manage" + msg);
 }
示例#2
0
 public void RemoveLogin(string loginProvider, string providerKey)
 {
     UserManager manager = new UserManager();
     var result = manager.RemoveLogin(User.Identity.GetUserId(), new UserLoginInfo(loginProvider, providerKey));
     string msg = String.Empty;
     if (result.Succeeded)
     {
         var user = manager.FindById(User.Identity.GetUserId());
         IdentityHelper.SignIn(manager, user, isPersistent: false);
         msg = "?m=RemoveLoginSuccess";
     }
     Response.Redirect("~/Account/Manage" + msg);
 }
示例#3
0
    public void RemoveLogin(string loginProvider, string providerKey)
    {
        UserManager manager = new UserManager();
        var         result  = manager.RemoveLogin(User.Identity.GetUserId(), new UserLoginInfo(loginProvider, providerKey));
        string      msg     = String.Empty;

        if (result.Succeeded)
        {
            var user = manager.FindById(User.Identity.GetUserId());
            IdentityHelper.SignIn(manager, user, isPersistent: false);
            msg = "?m=RemoveLoginSuccess";
        }
        Response.Redirect("~/Account/Manage" + msg);
    }
示例#4
0
        public JsonResult DeleteConfirmed(string id, string confirmText)
        {
            ApplicationUser user = context.Users.FirstOrDefault(u => u.Id == id);

            context.Users.Attach(user);
            context.Entry(user).Collection(u => u.Roles).Load();
            var    success = false;
            string error   = "";

            if (user == null)
            {
                error = "Không tìm thấy người dùng này";
            }
            else if (confirmText.ToLower() != "đồng ý")
            {
                error = "Chuỗi nhập vào chưa đúng";
            }
            else
            {
                var roles = UserManager.GetRoles(user.Id);
                if (roles.Contains("Admin"))
                {
                    error = "Không có quyền xóa tài khoản Admin";
                }
                else
                {
                    //remove login
                    var logins = user.Logins;
                    foreach (var login in logins.ToList())
                    {
                        UserManager.RemoveLogin(login.UserId, new UserLoginInfo(login.LoginProvider, login.ProviderKey));
                    }
                    //remove role
                    foreach (var role in roles)
                    {
                        UserManager.RemoveFromRole(user.Id, role);
                    }
                    //remove user
                    context.Users.Remove(user);
                    context.SaveChanges();
                    success = true;
                }
            }

            return(Json(new { success = success, id = id, error = error }));
        }
示例#5
0
        /// <summary>
        /// Removes a user from the system completely.
        /// </summary>
        /// <param name="user">The user to unregister</param>
        private void Unregister(ApplicationUser user)
        {
            var logins = UserManager.GetLogins(user.Id);
            var roles  = UserManager.GetRoles(user.Id);

            foreach (var login in logins)
            {
                UserManager.RemoveLogin(user.Id, login);
            }

            if (roles.Count > 0)
            {
                UserManager.RemoveFromRoles(user.Id, roles.ToArray());
            }

            UserManager.Delete(user);
        }
        public IHttpActionResult DeleteUser(string korisnikId)
        {
            UserStore <ApplicationUser>   userStore   = new UserStore <ApplicationUser>(dbContext);
            UserManager <ApplicationUser> userManager = new UserManager <ApplicationUser>(userStore);

            var userZaBrisanje = userManager.FindById(korisnikId);

            if (userZaBrisanje == null)
            {
                return(NotFound());
            }
            else
            {
                var logins       = userZaBrisanje.Logins;
                var rolesForUser = userManager.GetRoles(korisnikId);

                foreach (var login in logins)
                {
                    userManager.RemoveLogin(korisnikId, new UserLoginInfo(login.LoginProvider, login.ProviderKey));
                }

                if (rolesForUser.Count > 0)
                {
                    foreach (var item in rolesForUser.ToList())
                    {
                        userManager.RemoveFromRole(korisnikId, item);
                    }
                }

                var omiljeniOglasiZaBrisanje = dbContext.OmiljeniOglasiPoKorisniku.Where(x => x.KorisnikKomeJeOglasOmiljenId == korisnikId || x.OmiljeniOglas.UserAutorOglasaId == korisnikId);
                dbContext.OmiljeniOglasiPoKorisniku.RemoveRange(omiljeniOglasiZaBrisanje);

                dbContext.SaveChanges();

                string putanjaZaBrisanjeSlikaFolderKorisnika = HttpContext.Current.Server.MapPath(Path.Combine(PomocnaKlasa.ImagesFolder, korisnikId));

                if (Directory.Exists(putanjaZaBrisanjeSlikaFolderKorisnika))
                {
                    Directory.Delete(HttpContext.Current.Server.MapPath(Path.Combine(PomocnaKlasa.ImagesFolder, korisnikId)), true);
                }

                userManager.Delete(userZaBrisanje);
                return(Ok());
            }
        }
示例#7
0
        public ActionResult DeleteConfirmed(string id)
        {
            var userStore   = new UserStore <ApplicationUser>(db);
            var userManager = new UserManager <ApplicationUser>(userStore);

            if (ModelState.IsValid)
            {
                //
                // TODO: Check if the explicit removal of logins is needed or not.
                //       It is possible that it is done automatically, by the
                //       userManager.Delete method.
                //       The code to remove users was found on internet and we
                //       have already removed some unnessesary code to remove roles.
                //       The code found used userManager.DeleteAsync method, but
                //       we removed some "await" and "Async" strings from code and
                //       identifiers to have it compile.
                //

                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                var user         = userManager.FindById(id);
                var logins       = user.Logins;
                var rolesForUser = userManager.GetRoles(id);

                using (var transaction = db.Database.BeginTransaction())
                {
                    foreach (var login in logins.ToList())
                    {
                        userManager.RemoveLogin(login.UserId, new UserLoginInfo(login.LoginProvider, login.ProviderKey));
                    }

                    userManager.Delete(user);
                    transaction.Commit();
                }

                return(RedirectToAction("Index"));
            }
            else
            {
                return(View());
            }
        }
示例#8
0
        public ActionResult Disassociate(string provider, string providerUserId)
        {
            ManageMessageId?message = null;
            var             owner   = UserManager.Find(new UserLoginInfo(provider, providerUserId));

            if (owner != null && owner.UserName == User.Identity.Name)
            {
                IdentityResult result = UserManager.RemoveLogin(owner.Id, new UserLoginInfo(provider, providerUserId));
                if (result.Succeeded)
                {
                    message = ManageMessageId.RemoveLoginSuccess;
                }
                else
                {
                    message = ManageMessageId.Error;
                }
            }
            return(RedirectToAction("Manage", new { Message = message }));
        }
示例#9
0
        public void DeleteMultipleDrivers(IEnumerable <int> driversToDelete)
        {
            List <string> driversToDeleteInUserTable = new List <string>();

            Context.Driver.Where(d => driversToDelete.Contains(d.DriverId)).ToList().ForEach(
                d =>
            {
                d.IsDeleted = true;
            }
                );
            Context.Commit();

            using (ApplicationDbContext appDBcontext = new ApplicationDbContext())
            {
                UserStore <ApplicationUser>   store       = new UserStore <ApplicationUser>(appDBcontext);
                UserManager <ApplicationUser> UserManager = new UserManager <ApplicationUser>(store);
                foreach (var userId in driversToDeleteInUserTable)
                {
                    var user         = UserManager.FindById(userId);
                    var logins       = user.Logins;
                    var rolesForUser = UserManager.GetRoles(userId);

                    using (var transaction = appDBcontext.Database.BeginTransaction())
                    {
                        foreach (var login in logins.ToList())
                        {
                            UserManager.RemoveLogin(login.UserId, new UserLoginInfo(login.LoginProvider, login.ProviderKey));
                        }

                        if (rolesForUser.Count() > 0)
                        {
                            foreach (var item in rolesForUser.ToList())
                            {
                                // item should be the name of the role
                                var result = UserManager.RemoveFromRole(user.Id, item);
                            }
                        }
                        UserManager.Delete(user);
                        transaction.Commit();
                    }
                }
            }
        }
        // GET: Manage/DeleteUser/5
        //[Authorize(Roles = "IT")]
        public ActionResult DeleteUser(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            //Initialize db
            var db = new ApplicationDbContext();

            //Initialize user/role managers
            var UserManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db));
            var RoleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(db));

            //Get the user
            var user = UserManager.FindById(id);

            Dictionary <string, string> roles = RoleManager.Roles.ToDictionary(r => r.Id, r => r.Name);
            var roleId = roles.Where(r => r.Value == "student").FirstOrDefault().Key;


            var rolesForUser = UserManager.GetRoles(id);

            if (rolesForUser.Count() > 0)
            {
                foreach (var item in rolesForUser.ToList())
                {
                    // item should be the name of the role
                    var result = UserManager.RemoveFromRole(user.Id, item);
                }
            }

            var logins = user.Logins;

            foreach (var login in logins.ToList())
            {
                UserManager.RemoveLogin(login.UserId, new UserLoginInfo(login.LoginProvider, login.ProviderKey));
            }

            UserManager.Delete(user);

            return(RedirectToAction("Users"));
        }
示例#11
0
        public ActionResult userDelete(ApplicationUser model)
        {
            ViewBag.Message = "Your contact page.";
            string userid      = User.Identity.GetUserId();
            var    currentuser = db.Users.SingleOrDefault(u => u.Id == userid);
            var    UserManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db));

            var logins = currentuser.Logins;

            foreach (var login in logins.ToList())
            {
                UserManager.RemoveLogin(login.UserId, new UserLoginInfo(login.LoginProvider, login.ProviderKey));
            }

            var rolesForUser = UserManager.GetRoles(userid);

            if (rolesForUser.Count() > 0)
            {
                foreach (var item in rolesForUser.ToList())
                {
                    // item should be the name of the role
                    var result = UserManager.RemoveFromRole(currentuser.Id, item);
                }
            }

            var PostsForUser = currentuser.Posts;

            foreach (var item in PostsForUser.ToList())
            {
                db.Posts.Remove(item);
            }

            var ComentsForUser = currentuser.Comments;

            foreach (var item in ComentsForUser.ToList())
            {
                db.Comments.Remove(item);
            }

            UserManager.Delete(currentuser);

            return(RedirectToAction("AfterDelete"));
        }
        //Verwijdert een gebruiker en al zijn verwijzingen in andere tables zoals, in identityuserrole, identityuserlogin en identityuserclaim.
        public void DeleteGebruiker(Gebruiker user)
        {
            var logins       = user.Logins;
            var rolesForUser = userManager.GetRoles(user.Id);

            //Hier verwijdert hij de logins.
            foreach (var login in logins.ToList())
            {
                userManager.RemoveLogin(login.UserId, new UserLoginInfo(login.LoginProvider, login.ProviderKey));
            }
            //Hier verwijdert hij de identityuserrole
            if (rolesForUser.Any())
            {
                foreach (var item in rolesForUser.ToList())
                {
                    userManager.RemoveFromRoleAsync(user.Id, item);
                }
            }

            userManager.Delete(user);
        }
        public void Remove(string id)
        {
            var user   = UserManager.FindById(id);
            var logins = user.Logins;

            foreach (var login in logins)
            {
                UserManager.RemoveLogin(login.UserId, new UserLoginInfo(login.LoginProvider, login.ProviderKey));
            }

            var rolesForUser = UserManager.GetRoles(id);

            if (rolesForUser.Count() > 0)
            {
                foreach (var item in rolesForUser.ToList())
                {
                    // item should be the name of the role
                    var result = UserManager.RemoveFromRole(user.Id, item);
                }
            }

            UserManager.Delete(user);
        }
        public ActionResult DeleteConfirmed(int id)
        {
            if (ModelState.IsValid)
            {
                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                //initialize a user manager
                var UserManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context));


                BTTUser user       = db.BTTUsers.Find(id);                        //get Account BeyondTheTutor (DATA)
                var     aspAccount = UserManager.FindById(user.ASPNetIdentityID); //get Account AspAccountIdentity (DATA)

                //information about 3rd party/external logins, for example users who login into our site via Google, Facebook, Twitter etc
                var logins = aspAccount.Logins;

                var accountRoles = UserManager.GetRoles(aspAccount.Id); //get roles

                //viewbag printouts for Target Account
                var accountEmail = aspAccount.Email.ToString(); // get email of account being deleted
                var firstName    = user.FirstName;              // first and
                var lastName     = user.LastName;               // last name
                var accountRole  = UserManager.GetRoles(aspAccount.Id).FirstOrDefault().ToString();
                //eof viewbag printouts


                db.BTTUsers.Remove(user); //remove BeyondTheTutor Account's (DATA)
                db.SaveChanges();


                using (var transaction = context.Database.BeginTransaction())
                {
                    foreach (var login in logins.ToList())
                    {
                        UserManager.RemoveLogin(login.UserId, new UserLoginInfo(login.LoginProvider, login.ProviderKey));
                    }

                    if (accountRoles.Count() > 0)
                    {
                        foreach (var item in accountRoles.ToList())
                        {
                            // item should be the name of the role
                            var result = UserManager.RemoveFromRole(aspAccount.Id, item);
                        }
                    }

                    UserManager.Delete(aspAccount);
                    transaction.Commit();
                }

                TempData["f"] = "You have successfully removed a " + accountRole + ": " + firstName + " " + lastName + ", " + accountEmail + "";

                return(RedirectToAction("Index"));
            }
            else
            {
                ViewBag.f = "Something went wrong. Please make sure your action was valid.";
                return(View());
            }
        }
        public ActionResult DeleteConfirmed(string id)
        {
            if (User.Identity.IsAuthenticated)
            {
                string cid = User.Identity.GetUserId();
                UserManager <ApplicationUser> userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(appDb));
                var roles = userManager.GetRoles(cid);
                if (roles[0] == "Doctor")
                {
                    if (id == null)
                    {
                        return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                    }
                    Doctor doctor = db.Doctors.Find(id);
                    db.Doctors.Remove(doctor);
                    db.SaveChanges();
                    if (ModelState.IsValid)
                    {
                        var user = userManager.FindById(id);
                        if (user == null)
                        {
                            return(RedirectToAction("Index"));
                        }

                        // Log user off if current user is being deleted
                        if (cid == id)
                        {
                            HttpContext.GetOwinContext().Authentication.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
                        }
                        var logins       = user.Logins;
                        var rolesForUser = userManager.GetRoles(id);

                        using (var transaction = appDb.Database.BeginTransaction())
                        {
                            foreach (var login in logins.ToList())
                            {
                                userManager.RemoveLogin(login.UserId, new UserLoginInfo(login.LoginProvider, login.ProviderKey));
                            }

                            if (rolesForUser.Count() > 0)
                            {
                                foreach (var item in rolesForUser.ToList())
                                {
                                    var result = userManager.RemoveFromRole(user.Id, item);
                                }
                            }

                            userManager.Delete(user);
                            transaction.Commit();
                        }
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        return(View());
                    }
                }
                else
                {
                    return(View("AccessDenied"));
                }
            }
            else
            {
                return(View("NotLoggedIn"));
            }
        }
示例#16
0
        public ActionResult DeleteConfirmed(int?id)
        {
            using (var transaction = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                try
                {
                    if (id == null)
                    {
                        TempData["Toastr"] = Toastr.BadRequest;
                        return(RedirectToAction("Index"));
                    }
                    var user = _db.Users.Find(id);
                    if (user == null)
                    {
                        TempData["Toastr"] = Toastr.HttpNotFound;
                        return(RedirectToAction("Index"));
                    }
                    if (user.UserName.ToLower() == "admin")
                    {
                        TempData["Toastr"] = Toastr.CustomError("The User admin cannot be deleted.");
                        return(RedirectToAction("Index"));
                    }

                    var applicationUser = _userManager.FindByName(user.UserName);
                    var logins          = applicationUser.Logins;
                    var rolesForUser    = _userManager.GetRoles(applicationUser.Id);

                    logins.ForEach(login =>
                                   _userManager.RemoveLogin(login.UserId,
                                                            new UserLoginInfo(login.LoginProvider, login.ProviderKey)));
                    if (rolesForUser.Any())
                    {
                        rolesForUser.ForEach(role => _userManager.RemoveFromRole(applicationUser.Id, role));
                    }
                    _userManager.Delete(applicationUser);

                    _db.Users.Remove(user);
                    _db.SaveChanges();

                    transaction.Complete();

                    TempData["Toastr"] = Toastr.Deleted;
                    return(RedirectToAction("Index"));
                }
                catch (DbUpdateException ex)
                {
                    var sqlException = ex.GetBaseException() as SqlException;
                    if (sqlException == null || sqlException.Errors.Count <= 0)
                    {
                        throw;
                    }
                    switch (sqlException.Errors[0].Number)
                    {
                    case 547:     // Foreign Key violation
                        Transaction.Current.Rollback();
                        TempData["Toastr"] = Toastr.CustomError("The user cannot be deleted, because it is in use.");
                        return(RedirectToAction("Index"));

                    default:
                        throw;
                    }
                }
                catch (Exception ex)
                {
                    Transaction.Current.Rollback();
                    TempData["Toastr"] = Toastr.DbError(ex.Message);
                    return(RedirectToAction("Index"));
                }
            }
        }