UserManager.DeleteUser不支持指定的方法

时间:2014-11-25 15:05:40

标签: c# asp.net-mvc asp.net-mvc-5

我已经在http://blogs.msdn.com/b/webdev/archive/2014/03/20/test-announcing-rtm-of-asp-net-identity-2-0-0.aspx之后安装了最新的ASP.NET Identitiy。在NuGet安装之后,我对intellisense访问了DeleteUser / DeleteUserAsync方法,并且代码编译得很好。但是,在我调用此方法的运行时,我得到了

  

不支持指定的方法。

     

堆栈跟踪:   [NotSupportedException:不支持指定的方法。]      Microsoft.AspNet.Identity.EntityFramework.UserStore`1.DeleteAsync(TUser用户)+59

原因很清楚,但是如何编译它并立即执行?要使用UserManager删除用户,我该怎么办?

我用来执行此操作的当前代码是

[AllowAnonymous]
public async Task<ActionResult> RemoveUser(string userName)
{
    ApplicationUser user = null;
    if (ModelState.IsValid)
    {
        user = await UserManager.FindByIdAsync(User.Identity.GetUserId());
        if (user.IsAdmin != null && (bool)user.IsAdmin)
        {
            var userToRem = await UserManager.FindByNameAsync(userName);
            IdentityResult result = await UserManager.DeleteAsync(userToRem); <- EXCEPTION

            // If successful
            if (!result.Succeeded)
                return new HttpStatusCodeResult(HttpStatusCode.ServiceUnavailable);
        }
    }
    return RedirectToAction("Index", "Tools");
}

我对任何花哨的东西都不感兴趣,我想要做的就是移除一个用户,由于某种原因,它给了我一个皇家球疼。任何其他方法将不胜感激。

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

在ASP.NET Identity v1中,不支持DeleteAsync。根据您看到的错误消息,看起来您正在引用v1。

尝试通过Nuget将ASP.NET Identity包更新到v2.1.0。