我正在使用ASP .NET成員資格數據庫對Web應用程序中的用戶進行身份驗證。Membership.FindUsersByEmail - SQL通配符
用戶使用他們的電子郵件地址登錄,但在數據庫的用戶名字段中使用了其他內容。
所以登錄屏幕上,我使用Membership.FindUsersByEmail
的問題是,這個函數使用取我的用戶在SQL和SQL通配符不在於方法逃過「LIKE」。
因此,例如使用[email protected]的方法將返回[email protected]和[email protected]的用戶名(因爲下劃線被視爲通配符)。
根據wiki,在電子郵件地址中接受引號,%和一堆其他字符。
雖然我可以打電話Membership.FindUsersByEmail之前做這樣的事情
emailAddr = emailAddr.Replace("_", "[_]").Replace("%", "[%]")...
,我在想,必須有這樣做一個更清潔的方式。
你爲什麼使用LIKE語句?你的用戶不知道他們是如何輸入自己的電子郵件地址的?我從來沒有意外去過GMAIL,只輸入「[email protected]」。 (或者更確切地說:。[obfuscated] @ gmail.co)。 – AllenG 2010-08-02 18:14:52
我不是使用類似聲明的人。 System.Web.Security.Membership.FindUsersByEmail是。看到這裏http://msdn.microsoft.com/en-us/library/b2ec0bts.aspx – 2010-08-02 18:18:53