首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在mvc5中删除UserManager用户

如何在mvc5中删除UserManager用户
EN

Stack Overflow用户
提问于 2014-03-13 20:54:20
回答 3查看 10.2K关注 0票数 2

我用的是mvc5,以及我用UserManager做的所有关于用户帐户管理的事情。它可以很好地处理角色、声明等,但我不知道如何使用UserManager删除用户。有没有办法用UserManager删除用户?我可以使用dbset创建数据库上下文,然后从该上下文中删除它,但我不希望为一个delete方法创建dbcontext、userclass等。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-14 02:57:31

在1.0版本的UserManager中不支持删除,但在即将发布的2.0版本和当前的2.0夜间构建中支持删除,如果你想提前预览更改的话。

票数 0
EN

Stack Overflow用户

发布于 2014-07-06 17:28:44

我对上面的答案有问题,尽管我能够找出问题所在。我一直收到级联错误。基本上,删除用户时并未删除角色。DeleteAsync没有为我做这件事(我有最新版本的身份框架)。最终将userid和角色都传递到我的代码中,从角色中删除用户,然后删除用户。似乎工作得很好。

代码语言:javascript
运行
复制
[HttpPost, ActionName("Delete")]
    [ValidateAntiForgeryToken]
    public async Task<ActionResult> Delete(string id, string role)
    {
        // Check for for both ID and Role and exit if not found
        if (id == null || role == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }

        // Look for user in the UserStore
        var user = UserManager.Users.SingleOrDefault(u => u.Id == id);

        // If not found, exit
        if (user == null)
        {
            return HttpNotFound();
        }

        // Remove user from role first!
        var remFromRole = await UserManager.RemoveFromRoleAsync(id, role);

        // If successful
        if (remFromRole.Succeeded)
        {
            // Remove user from UserStore
            var results = await UserManager.DeleteAsync(user);

            // If successful
            if (results.Succeeded)
            {
                // Redirect to Users page
                return RedirectToAction("Index", "Users", new {area = "Dashboard"});
            }
            else
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
        }
        else
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }

    }
票数 3
EN

Stack Overflow用户

发布于 2014-05-13 19:11:31

使用更新后的asp.net标识,我有以下代码:

代码语言:javascript
运行
复制
public UserManagerController()
        : this(new UserManager<User>(new UserStore<User>(new ApplicationDbContext())))
    {
    }

    public UserManagerController(UserManager<User> userManager)
    {
        UserManager = userManager;
    }

    public UserManager<User> UserManager { get; private set; }

    public async Task<ActionResult> Delete (string id)
    {
        var userContext = new ApplicationDbContext();


        var user = UserManager.Users.SingleOrDefault(u => u.Id == id);

        var userStore = new UserStore<User>(userContext);

        await UserManager.DeleteAsync(user);

        // var userManager = new UserManager<User>(userStore);

        // await userManager.DeleteAsync(user);

        return RedirectToAction("Index");
    }

现在,此命令将删除用户。也不需要从UserRoles表中删除,因为这是由UserManager.DeleteAsync(用户)处理的。

希望这能对一些人有所帮助。我花了一些时间弄清楚为什么我得到了一些错误。

Trond

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22379297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档