我已经在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");
}
我对任何花哨的东西都不感兴趣,我想要做的就是移除一个用户,由于某种原因,它给了我一个皇家球疼。任何其他方法将不胜感激。
感谢您的时间。
答案 0 :(得分:1)
在ASP.NET Identity v1中,不支持DeleteAsync。根据您看到的错误消息,看起来您正在引用v1。
尝试通过Nuget将ASP.NET Identity包更新到v2.1.0。