有一个asp.net mvc 4网站。用户希望从头开始重新启动Web应用程序。清除所有登录/会员信息的最佳方法是什么。只需使用Sql server management studio删除所有表中的记录? (webpages_ *和UserProfile)?
表UserProfile
中有一个添加的列,它引用用户定义的表。
或者只是使用SSMS丢弃整个数据库?或者删除数据库中的所有表(包括__MigrationHistory)?
答案 0 :(得分:2)
在用于处理用户的控制器中,您可以创建一个删除用户的操作方法。在此示例中,将删除当前用户,包括所有相关数据。
public ActionResult DeleteMe()
{
Membership.DeleteUser(User.Identity.Name, deleteAllRelatedData: true);
FormsAuthentication.SignOut();
return RedirectToAction("Login", "Account");
}
要调用上面的操作方法,只需在视图中添加以下代码即可显示按钮...
@using (Html.BeginForm("DeleteMe","Account"))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary()
<fieldset>
<input type="submit" value="Delete my account" />
</fieldset>
}
...或者,如果你想显示一个链接。
@Html.ActionLink("Delete my account", "DeleteMe", "Account")
如果您希望该功能删除其他用户而不是您自己,您可以修改上面的操作方法并执行以下操作:
public ActionResult DeleteUser(string userName)
{
Membership.DeleteUser(userName, deleteAllRelatedData: true);
}
请注意,您需要为此添加更多安全性,以检查调用此方法的用户是否实际有权执行此操作...但这是有关如何删除用户的基础知识。