2017-04-08 36 views
0

如果用戶想要在會話期間刪除他/她的帳戶,我想您需要再次輸入密碼才能驗證身份以防萬一。這是我的SQL代碼:SQL Server:刪除現有帳戶的存儲過程

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中的會話會發生什麼?它是否爲空?

+0

是對的嗎?不,因爲密碼驗證不是你想要在數據庫中做的事情... –

+0

這也是錯誤的方式,因爲密碼不應該是唯一的。 –

+0

該存儲過程將刪除所有具有特定密碼的用戶。另外從存儲的proc中可以明顯看出,您以純文本存儲密碼,這是一個很大的安全漏洞。 –

回答

0

既然你問的權利(我要說常見)的方式,我建議你如下:

不要做任何的嘗試上刪除特別是當用戶登錄的帳戶,但要求他們確認去激活它。當您獲得確認後,請停用該帳戶,以便通用策略。

現在什麼,可以說1000系統的用戶已停用?接下來會發生什麼?

有一項服務或查詢工作,在停用某些日期後,它將執行帳戶的實際刪除。

如何刪除ASP.NET用戶?

這是相當廣泛的,取決於你的系統結構,需要不同的查詢,但如果你堅持要刪除用戶,那麼你應該刪除所有相關的子表記錄,然後刪除記錄本身。

考慮使用ASP.NET Identity,所以你不會重新發明輪子。

+0

感謝您的提示!我會牢記這些實施 – concretejungle