SQL Server:删除现有帐户的存储过程

SQL Server:删除现有帐户的存储过程,sql,asp.net,sql-server,Sql,Asp.net,Sql Server,如果用户想在会话期间删除其帐户,我想您需要再次输入密码以验证身份,以防万一。以下是我的SQL代码: CREATE PROC spDeleteAccount @Password nvarchar(100) -- I'm expecting a password input to verify identity again AS BEGIN IF (@Password IS NOT NULL) -- If user exists BEGIN DELETE FROM tblUsers

如果用户想在会话期间删除其帐户,我想您需要再次输入密码以验证身份,以防万一。以下是我的SQL代码:

CREATE PROC spDeleteAccount @Password nvarchar(100) -- I'm expecting a password input to verify identity again AS BEGIN IF (@Password IS NOT NULL) -- If user exists BEGIN DELETE FROM tblUsers WHERE Password = @Password SELECT 1 AS ReturnCode END ELSE -- If user doesn't exist BEGIN SELECT 0 AS ReturnCode END END 这样做对吗


对于ASP部分:ASP.NET中的会话会发生什么?它是否变为空?

既然您询问了权利,我会说“普通方式”,我建议您:

当用户登录时,不要尝试删除帐户,而是请求他们确认取消激活帐户。当你得到确认,然后停用帐户,因此这是为共同的战略

现在,假设您的系统有1000个用户已停用?接下来会发生什么

准备一个服务或查询作业,在停用特定天数后,它将执行帐户的实际删除

如何删除ASP.NET用户

这是相当广泛的,并且取决于系统的结构,需要不同的查询,但是如果您坚持删除用户,那么您应该删除所有相关的子表记录,然后删除记录本身


考虑使用,这样你就不会重新发明轮子。

这是正确的方法吗?否,因为您不希望在数据库中执行密码验证…这也是错误的方法,因为密码不应是唯一的。此存储过程将删除所有具有特定密码的用户。另外,从存储过程可以清楚地看出,您正在以明文形式存储密码,这是一个很大的安全漏洞。@ChetanRanpariya不,密码是加密的,在密码输入案例中,我也在将其发送到数据库之前用c对其进行加密。但是我明白你关于第一句话的意思,我也会添加email属性谢谢你的提示!我会记住这些来实施