簡體   English   中英

使用身份從 Web Api 2 中的數據庫中刪除用戶

[英]Delete user from database in Web Api 2 using Identity

標題說什么。 我嘗試了幾種方法,但都沒有奏效。 如果有人有時間,我將非常感謝您的幫助。

我的 Ajax 請求:

$('#deleteUserBtn').click(function () {

    $.ajax({
        url: 'Profile/DeleteUser',
        method: 'DELETE',
        headers: {
        'Authorization': 'Bearer '
            + sessionStorage.getItem("accessToken")
        },
        success: function (data) {
            sessionStorage.removeItem('accessToken');
            window.location.href = "../Login.html";
        },
        error: function (jQXHR) {
        }
    });
});

控制器不工作,但它會讓你知道我想要做什么。

控制器:

[RoutePrefix("Personal_Project/Main_Page_Personal_Project")]
[Route("Profile/DeleteUser")]
[HttpDelete]
[Authorize]
public void DeleteUser()
{

   string userId = User.Identity.GetUserId();
   ApplicationUser LoggedUser = db.Users.Find(userId);

   db.Users.Remove(LoggedUser);
   db.SaveChanges();

}

我在瀏覽控制台中收到此錯誤:

jquery-3.3.1.min.js:2 DELETE http://localhost:50370/Personal_Project/Main_Page_Personal_Project/Profile/DeleteUser 500(內部服務器錯誤)

我訪問了這些鏈接,但可以找出答案。 幫助任何人?

刪除用戶 - WEB API

刪除用戶 MVC 5

刪除用戶 MVC 5 - 另一個鏈接

感謝“Dot Net Dev”,我學會了使用 try-catch 塊。 我內心的異常建議我還需要刪除與外鍵連接的另一個表與用戶表。 所以這就是我最終做的:

public void DeleteUser()
{
     string userId = User.Identity.GetUserId();
     ApplicationUser LoggedUser = db.Users.Find(userId);

     db.Users.Remove(LoggedUser);

     AdditionalInfo info = db.AdditionalInfo.Find(userId); // Added this
     db.AdditionalInfo.Remove(info); // Added this

     db.SaveChanges();

}

您可以將附加條目的狀態設置為已刪除:

string userId = _User.Identity.GetUserId();
ApplicationUser loggedUser = db.Users.Find(userId);
db.Entry(loggedUser ).State = EntityState.Deleted;
db.SaveChanges();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM