注意:此方法在 .NET Framework 2.0 版中是新增的。
获取属于某个角色且与指定的用户名相匹配的用户名的数组。
命名空间:System.Web.Security
程序集:System.Web(在 system.web.dll 中)
Public MustOverride Function FindUsersInRole ( _
roleName As String, _
usernameToMatch As String _
) As String()
Dim instance As RoleProvider
Dim roleName As String
Dim usernameToMatch As String
Dim returnValue As String()
returnValue = instance.FindUsersInRole(roleName, usernameToMatch)
public abstract string[] FindUsersInRole (
string roleName,
string usernameToMatch
)
public:
virtual array<String^>^ FindUsersInRole (
String^ roleName,
String^ usernameToMatch
) abstract
public abstract String[] FindUsersInRole (
String roleName,
String usernameToMatch
)
public abstract function FindUsersInRole (
roleName : String,
usernameToMatch : String
) : String[]
参数
- roleName
作为搜索范围的角色。
- usernameToMatch
要搜索的用户名。
返回值
一个字符串数组,包含用户名与 usernameToMatch 匹配且用户是指定角色的成员的所有用户的名称。
FindUsersInRole 方法由 Roles 类调用,并返回属于某个角色且与所提供的已配置 applicationName 的 usernameToMatch 相匹配的用户名列表。根据数据源的不同可提供通配符支持。按用户名的字母顺序返回用户。
建议在数据源中不存在 roleName 时引发 ProviderException。
下面的代码示例演示一个 FindUsersInRole 的实现。
Public Overrides Function FindUsersInRole(rolename As String, userNameToMatch As String) As String()
Dim conn As OdbcConnection = New OdbcConnection(connectionString)
Dim cmd As OdbcCommand = New OdbcCommand("SELECT Username FROM [" & usersInRolesTable & "] " & _
" WHERE Username LIKE ? AND RoleName = ? AND ApplicationName = ?", conn)
cmd.Parameters.Add("@UsernameSearch", OdbcType.VarChar, 255).Value = usernameToMatch
cmd.Parameters.Add("@RoleName", OdbcType.VarChar, 255).Value = rolename
cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = pApplicationName
Dim tmpUserNames As String = ""
Dim reader As OdbcDataReader = Nothing
Try
conn.Open()
reader = cmd.ExecuteReader()
Do While reader.Read()
tmpUserNames &= reader.GetString(0) & ","
Loop
Catch e As OdbcException
' Handle exception.
Finally
If Not reader Is Nothing Then reader.Close()
conn.Close()
End Try
If tmpUserNames.Length > 0 Then
' Remove trailing comma.
tmpUserNames = tmpUserNames.Substring(0, tmpUserNames.Length - 1)
Return tmpUserNames.Split(CChar(","))
End If
Return Nothing
End Function
public override string[] FindUsersInRole(string rolename, string usernameToMatch)
{
OdbcConnection conn = new OdbcConnection(connectionString);
OdbcCommand cmd = new OdbcCommand("SELECT Username FROM [" + usersInRolesTable + "] " +
" WHERE Username LIKE ? AND RoleName = ? AND ApplicationName = ?", conn);
cmd.Parameters.Add("@UsernameSearch", OdbcType.VarChar, 255).Value = usernameToMatch;
cmd.Parameters.Add("@RoleName", OdbcType.VarChar, 255).Value = rolename;
cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = pApplicationName;
string tmpUserNames = "";
OdbcDataReader reader = null;
try
{
conn.Open();
reader = cmd.ExecuteReader();
while (reader.Read())
{
tmpUserNames += reader.GetString(0) + ",";
}
}
catch (OdbcException)
{
// Handle Exception.
}
finally
{
if (reader != null) { reader.Close(); }
conn.Close();
}
if (tmpUserNames.Length > 0)
{
// Remove trailing comma.
tmpUserNames = tmpUserNames.Substring(0, tmpUserNames.Length - 1);
return tmpUserNames.Split(',');
}
return null;
}
Windows 98、Windows 2000 SP4、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
.NET Framework
受以下版本支持:2.0