如何在web api中删除用户?

时间:2015-11-13 09:37:10

标签: c# asp.net asp.net-mvc asp.net-identity asp.net-identity-2

我使用个人用户身份验证创建了一个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身份时它无效。所以我该怎么做? 感谢。

1 个答案:

答案 0 :(得分:0)

应该使用ASP .NET Identity框架访问AspNetUser和关联的表。

这将涉及使用特定的类来对用户,角色等执行CRUD操作。 在这种情况下,它将是UserManager

本文是对此的介绍:

Introduction to ASP.NET Identity

要删除User,您需要使用UserManager.Delete方法。您还需要通过UserManager检查并删除任何现有角色。

GitHub上有一个非常好的例子,它显示了我发现有用的常用功能。

AspnetIdentitySample