2009-09-15 52 views
1

MSDN documentation在這一點上並不精確。應該FindUsersByName包含部分匹配嗎?

它在一個地方說:「獲取會員用戶的集合,其中用戶名包含與指定的用戶名匹配。」

後來它說:「FindUsersByName返回一個成員用戶列表,其中用戶名匹配爲配置的applicationName提供的usernameToMatch。」

SQLMembershipProvider支持通配符,但文檔不會說我是否也必須使用自定義成員資格提供程序來完成此操作。

編輯:我真的在問更多關於會員供應商的意圖,而不是我在特定情況下應該做什麼。

回答

3

的FindUsersByName功能會做你把這個字符串匹配英寸

如果你想要它做的部分比賽,那麼你需要添加「%」你要搜索的字符串的結尾。

0

讓我們把它更加嚴格(找到精確匹配),以確保用戶「喬」的用戶「喬」 :)

的數據沒有進入無論如何,你真的需要找到給用戶只有部分名字?

編輯: 現在再次檢查你鏈接到MSDN方法,它的名字是FindUsersByName(用戶,而不是用戶),所以該方法能夠比一個用戶返回更多。這種情況下,我假設你應該實現代碼來返回所有匹配。 如果該方法是FindUserByName,則是相反的答案(你有方法的getUser本)

+1

在管理網站,這是一個共同的需要。 – David 2009-09-15 22:04:54

+0

由於一個管理員我仍然不相信,管理任務在這個問題上不是很頻繁,可以應用不同的方法。 真正的答案應該是:取決於你的需要:) – twk 2009-09-15 22:10:28

3

這句話在文件中解釋的那樣:

The SqlMembershipProvider performs its search using a LIKE clause against the usernameToMatch parameter. Any wildcards that are supported by SQL Server in LIKE clauses can be used in the usernameToMatch parameter value. 

SO

「獲取會員用戶的集合,其中用戶名包含指定的用戶名以匹配。」

是正確的句子,如果你做一個搜索「DAV *」你應該得到「戴夫」,「大衛,‘戴維斯’等

+0

我明白這是如何SqlMembershipProvider做到這一點,但這是否意味着所有其他實現應該支持這個?此外,我是否希望支持LIKE通配符? – Larsenal 2009-09-15 22:09:30