FindUsersByName应该包含部分匹配吗?

时间:2009-09-15 21:58:52

标签: asp.net asp.net-membership

MSDN documentation在这一点上并不准确。

它在一个地方说:“获取会员用户的集合,其中用户名包含要匹配的指定用户名。”

后来它说,“FindUsersByName返回一个成员资格用户列表,其中用户名匹配为配置的applicationName提供的usernameToMatch。”

SQLMembershipProvider支持通配符,但文档中没有说明我是否也必须使用自定义成员资格提供程序。

编辑:我真的在询问会员提供者的意图,而不是在我的具体情况下应该做些什么。

3 个答案:

答案 0 :(得分: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 *”你应该得到“Dave”,“David,”Davis“等等。

答案 1 :(得分:3)

FindUsersByName函数将对您传入的字符串进行匹配。

如果你想让它进行部分匹配,那么你需要在你要搜索的字符串的末尾添加'%'。

答案 2 :(得分:0)

让我们让它更具限制性(找到完全匹配)以确保用户'joe'无法访问用户'joel'的数据:)

无论如何,你真的需要找一个仅给出其名称的一部分的用户吗?

编辑: 现在再次检查您链接到的MSDN方法,它的名称是 FindUsersByName (用户,而不是用户),因此该方法可以返回多个用户。在这种情况下,我假设你应该实现代码来返回所有匹配。 如果方法是 FindUserByName ,那么它就是相反的答案(你有方法 GetUser