【发布时间】: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");
}
我对任何花哨的东西都不感兴趣,我只想删除一个用户,但出于某种原因,这让我感到非常痛苦。任何其他方法将不胜感激。
感谢您的宝贵时间。
【问题讨论】:
-
Insert、Update和Delete对上下文的操作应该是同步的。SaveChangesAsync应该处理对数据库的异步提交。
标签: c# asp.net-mvc asp.net-mvc-5