【问题标题】:UserManager.DeleteUser Specified method is not supportedUserManager.DeleteUser 不支持指定方法
【发布时间】:2014-11-25 15:05:39
【问题描述】:

我在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 后,我​​可以智能感知 DeleteUser/DeleteUserAsync 方法,并且代码编译得很好。但是,在运行时,当我调用此方法时,我得到了

不支持指定的方法。

堆栈跟踪: [NotSupportedException:不支持指定的方法。] Microsoft.AspNet.Identity.EntityFramework.UserStore`1.DeleteAsync(TUser user) +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");
}

我对任何花哨的东西都不感兴趣,我只想删除一个用户,但出于某种原因,这让我感到非常痛苦。任何其他方法将不胜感激。

感谢您的宝贵时间。

【问题讨论】:

  • InsertUpdateDelete 对上下文的操作应该是同步的。 SaveChangesAsync 应该处理对数据库的异步提交。

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


【解决方案1】:

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

尝试通过 Nuget 将您的 ASP.NET 身份包更新到 v2.1.0。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多