我在ASP.net MVC中實現了自定義成員資格提供程序,並且無法弄清楚如何在登錄時使用戶名不區分大小寫。所以,例如,「所羅門」可以登錄,但「solomon」不能。擺脫自定義會員供應商中的區分大小寫的用戶名
我的實現很枯燥。我基本上只是寫了ValidateUser()和Change Password()的代碼。
感謝您的幫助!
我在ASP.net MVC中實現了自定義成員資格提供程序,並且無法弄清楚如何在登錄時使用戶名不區分大小寫。所以,例如,「所羅門」可以登錄,但「solomon」不能。擺脫自定義會員供應商中的區分大小寫的用戶名
我的實現很枯燥。我基本上只是寫了ValidateUser()和Change Password()的代碼。
感謝您的幫助!
shimms是一半。
拆分兩個'層'之間的邏輯操作並不是一種合理的做法。
邏輯運算應該是原子運算。因此,只需在查詢中降低兩者...
例如
where Lower(username)=Lower(@username)
你說得很對。 +1 – 2010-03-06 05:17:22
真棒,謝謝! – Solomon 2010-03-06 15:21:13
將用戶名轉換爲小寫版本,然後將其與數據庫中用戶名的小寫版本進行比較。在ANSI SQL將是:
WHERE LOWER(username) = :username
提供用戶名參數爲:
... = username.ToLower();
我更喜歡大寫:) – 2010-03-06 05:05:32
這裏有一個脆弱的邏輯依賴關係,shimms。您不應該分割邏輯操作。這應該是數據庫/查詢中的原子比較。 – 2010-03-06 05:18:23
您是否在ValidateUser()中調用數據庫?如果是的話,你應該使查詢不區分大小寫。你使用什麼數據庫? – LukLed 2010-03-06 04:57:17
我將Fluent Nhibernate的MySql數據庫用作我的orm。 – Solomon 2010-03-06 15:21:59