我使用个人用户身份验证创建了一个web api。用户注册后,他的信息存储在2个表中,他的一般信息存储在" AspNetUsers"表和他的角色存储在" AspNetUserRoles"表。现在的问题是当我试图从列表中删除任何用户时,它不起作用。这是删除操作:
[ResponseType(typeof(AspNetUser))]
[ActionName("EmployeeInfo")]
[DeflateCompression]
public IHttpActionResult DeleteEmployeeInformation(string Id)
{
AspNetUser AspNetUser = db.AspNetUsers.Find(Id);
if (AspNetUser == null)
{
return NotFound();
}
db.AspNetUsers.Remove(AspNetUser);
db.SaveChanges();
return Ok(AspNetUser);
}
这是ajax调用:
function DeleteEmployeeInformations(recordID) {
jQuery.support.cors = true;
var id = recordID
$.ajax({
url: 'http://localhost:61115/api/EmployeeInformations/EmployeeInfo/' + id,
type: 'DELETE',
contentType: "application/json;charset=utf-8",
success: function (data) {
GetAllEmployeeInformations();
},
error: function (x, y, z) {
alert(x + '\n' + y + '\n' + z);
}
});
}
这个动作在没有asp.net身份的情况下工作正常,但是当我使用asp.net身份时它无效。所以我该怎么做? 感谢。
答案 0 :(得分:0)
应该使用ASP .NET Identity框架访问AspNetUser
和关联的表。
这将涉及使用特定的类来对用户,角色等执行CRUD操作。
在这种情况下,它将是UserManager
。
本文是对此的介绍:
Introduction to ASP.NET Identity
要删除User
,您需要使用UserManager.Delete方法。您还需要通过UserManager
检查并删除任何现有角色。
GitHub上有一个非常好的例子,它显示了我发现有用的常用功能。