ASP.NET Identity中的软删除

3

我是asp.net的新手。如何将IsDeleted的值存储到数据库中?

[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<ActionResult> DeleteConfirmed(string id)
{
    if (ModelState.IsValid)
    {     
        var user = await UserManager.FindByIdAsync(id);

       //set IsDeleted  to true
        user.DeleteUser();

        return RedirectToAction("Index");
    }
    return View();
}

1
你为什么要软删除一个账户?在商业场景下这是没有意义的。如果你想让该账户被禁用或锁定,请将其禁用或锁定。删除一个账户意味着彻底删除它,除非有法律原因需要这样做,否则不应该这样做。 - Panagiotis Kanavos
你可以添加一个 IsEnabled 属性,并在登录期间进行检查来禁用用户。另一种选择是将用户锁定为无限期锁定。 - Panagiotis Kanavos
禁用或锁定帐户是正确的解决方案。我使用了IsEnabled属性,它工作得很好。谢谢。 - Ahmed
2个回答

3

没有直接的方法来软删除用户账户。相反,我们可以锁定该账户。

请参考这个stackoverflow问题,其中包含更多细节。


0

你可以在数据库的userTable中添加一个字段来显示状态,如果用户被删除,则该值将设置为true,默认情况下该值为false。


那是一个问题,而不是答案。 - Panagiotis Kanavos
我建议在数据库表中添加一个字段来检查用户是否已删除。@PanagiotisKanavos - fateme
这就是OP所问的问题。如何将IsDeleted的值存储到数据库中?你如何创建该字段?你如何设置该值? - Panagiotis Kanavos
1
不要使用 user.DeleteUser(); 删除用户,而是可以通过编辑状态来实现,即 user.status = false。其中 status 是显示用户状态(已删除或未删除)的属性。@PanagiotisKanavos - fateme

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接