Freigeben über


RoleProvider.GetUsersInRole(String) Methode

Definition

Ruft eine Liste der Benutzer mit der angegebenen Rolle für die konfigurierte applicationName ab.

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

Parameter

roleName
String

Der Name der Rolle, für die die Liste der Benutzer abgerufen werden soll.

Gibt zurück

String[]

Ein Zeichenfolgenarray mit den Namen aller Benutzer, die Mitglieder der angegebenen Rolle für die konfigurierte applicationName sind.

Beispiele

Das folgende Codebeispiel zeigt eine Beispielimplementierung der GetUsersInRole -Methode.

public override string[] GetUsersInRole(string rolename)
{
  if (rolename == null || rolename == "")
    throw new ProviderException("Role name cannot be empty or null.");
  if (!RoleExists(rolename))
    throw new ProviderException("Role does not exist.");

  string tmpUserNames = "";

  OdbcConnection conn = new OdbcConnection(connectionString);
  OdbcCommand cmd = new OdbcCommand("SELECT Username FROM UsersInRoles "  +
                                    " WHERE Rolename = ? AND ApplicationName = ?", conn);

  cmd.Parameters.Add("@Rolename", OdbcType.VarChar, 255).Value = rolename;
  cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName;

  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 new string[0];
}
Public Overrides Function GetUsersInRole(ByVal rolename As String) As String()
    If rolename Is Nothing OrElse rolename = "" Then _
      Throw New ProviderException("Role name cannot be empty or null.")
    If Not RoleExists(rolename) Then _
      Throw New ProviderException("Role does not exist.")

    Dim tmpUserNames As String = ""

    Dim conn As OdbcConnection = New OdbcConnection(connectionString)
    Dim cmd As OdbcCommand = New OdbcCommand("SELECT Username FROM UsersInRoles " & _
                                             " WHERE Rolename = ? AND ApplicationName = ?", conn)

    cmd.Parameters.Add("@Rolename", OdbcType.VarChar, 255).Value = rolename
    cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName

    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 New String() {}
End Function

Hinweise

GetUsersInRole wird von der GetUsersInRole -Methode der Roles -Klasse aufgerufen, um die benutzernamen abzurufen, die einer Rolle aus der Datenquelle zugeordnet sind. Nur die Rollen für die konfigurierte ApplicationName werden abgerufen.

Wenn der angegebene Rollenname für die konfigurierte applicationName nicht vorhanden ist oder es sich um eine leere Zeichenfolge handelt null , wird empfohlen, dass Ihr Anbieter eine Ausnahme auslöst.

Wenn der angegebenen Rolle für den konfigurierten applicationNamekeine Benutzer zugeordnet sind, wird empfohlen, dass Ihr Anbieter ein Zeichenfolgenarray ohne Elemente zurückgibt.

Gilt für:

Weitere Informationen