.NET Framework 类库
RoleProvider.FindUsersInRole 方法

注意:此方法在 .NET Framework 2.0 版中是新增的。

获取属于某个角色且与指定的用户名相匹配的用户名的数组。

命名空间:System.Web.Security
程序集:System.Web(在 system.web.dll 中)

语法

Visual Basic(声明)
Public MustOverride Function FindUsersInRole ( _
    roleName As String, _
    usernameToMatch As String _
) As String()
Visual Basic(用法)
Dim instance As RoleProvider
Dim roleName As String
Dim usernameToMatch As String
Dim returnValue As String()

returnValue = instance.FindUsersInRole(roleName, usernameToMatch)
C#
public abstract string[] FindUsersInRole (
    string roleName,
    string usernameToMatch
)
C++
public:
virtual array<String^>^ FindUsersInRole (
    String^ roleName, 
    String^ usernameToMatch
) abstract
J#
public abstract String[] FindUsersInRole (
    String roleName, 
    String usernameToMatch
)
JScript
public abstract function FindUsersInRole (
    roleName : String, 
    usernameToMatch : String
) : String[]

参数

roleName

作为搜索范围的角色。

usernameToMatch

要搜索的用户名。

返回值

一个字符串数组,包含用户名与 usernameToMatch 匹配且用户是指定角色的成员的所有用户的名称。
备注

FindUsersInRole 方法由 Roles 类调用,并返回属于某个角色且与所提供的已配置 applicationNameusernameToMatch 相匹配的用户名列表。根据数据源的不同可提供通配符支持。按用户名的字母顺序返回用户。

建议在数据源中不存在 roleName 时引发 ProviderException

示例

下面的代码示例演示一个 FindUsersInRole 的实现。

Visual Basic
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
C#
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
请参见

标记 :


Page view tracker