Udostępnij za pośrednictwem


RoleProvider.FindUsersInRole(String, String) Metoda

Definicja

Pobiera tablicę nazw użytkowników w roli, w której nazwa użytkownika zawiera określoną nazwę użytkownika do dopasowania.

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()

Parametry

roleName
String

Rola do wyszukania.

usernameToMatch
String

Nazwa użytkownika do wyszukania.

Zwraca

String[]

Tablica ciągów zawierająca nazwy wszystkich użytkowników, których nazwa użytkownika jest zgodna usernameToMatch , a użytkownik jest członkiem określonej roli.

Przykłady

Poniższy przykładowy kod przedstawia przykładową FindUsersInRole implementację.

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

Uwagi

Metoda FindUsersInRole jest wywoływana przez Roles klasę i zwraca listę użytkowników w roli, w której nazwa użytkownika zawiera dopasowanie podane usernameToMatch dla skonfigurowanego applicationNameelementu . Obsługa symboli wieloznacznych jest uwzględniana na podstawie źródła danych. Użytkownicy są zwracani w kolejności alfabetycznej według nazwy użytkownika.

Zalecamy, aby w źródle danych zgłaszać wartość ProviderException , jeśli roleName nie istnieje.

Dotyczy

Zobacz też