RoleProvider.FindUsersInRole(String, String) Método

Definição

Obtém um array de nomes de utilizador num papel onde o nome de utilizador contém o nome de utilizador especificado para corresponder.

public:
 abstract cli::array <System::String ^> ^ FindUsersInRole(System::String ^ roleName, System::String ^ usernameToMatch);
public abstract string[] FindUsersInRole(string roleName, string usernameToMatch);
abstract member FindUsersInRole : string * string -> string[]
Public MustOverride Function FindUsersInRole (roleName As String, usernameToMatch As String) As String()

Parâmetros

roleName
String

O papel a procurar.

usernameToMatch
String

O nome de utilizador a procurar.

Devoluções

String[]

Um array de cadeias contendo os nomes de todos os utilizadores onde o nome de utilizador coincide usernameToMatch e o utilizador é membro do papel especificado.

Exemplos

O seguinte exemplo de código mostra uma implementação exemplar FindUsersInRole .

public override string[] FindUsersInRole(string rolename, string usernameToMatch)
{
  OdbcConnection conn = new OdbcConnection(connectionString);
  OdbcCommand cmd = new OdbcCommand("SELECT Username FROM UsersInRoles  " +
                                    " 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;
}
Public Overrides Function FindUsersInRole(ByVal rolename As String, ByVal userNameToMatch As String) As String()
    Dim conn As OdbcConnection = New OdbcConnection(connectionString)
    Dim cmd As OdbcCommand = New OdbcCommand("SELECT Username FROM UsersInRoles  " & _
                                             " 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

Observações

O FindUsersInRole método é chamado pela Roles classe e devolve uma lista de utilizadores num papel onde o nome de utilizador contém uma correspondência do fornecido usernameToMatch para o .applicationName O suporte a wildcard está incluído com base na fonte de dados. Os utilizadores são devolvidos por ordem alfabética pelo nome de utilizador.

Recomendamos que inclua um ProviderException se roleName não existir na fonte de dados.

Aplica-se a

Ver também