RoleProvider.FindUsersInRole(String, String) Methode

Definition

Ruft ein Array von Benutzernamen in einer Rolle ab, in der der Benutzername den angegebenen Benutzernamen enthält, der übereinstimmen soll.

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

Parameter

roleName
String

Die Rolle, in der gesucht werden soll.

usernameToMatch
String

Der Benutzername, nach dem gesucht werden soll.

Gibt zurück

String[]

Ein Zeichenfolgenarray, das die Namen aller Benutzer enthält, in denen der Benutzername übereinstimmt usernameToMatch und der Benutzer Mitglied der angegebenen Rolle ist.

Beispiele

Das folgende Codebeispiel zeigt eine Beispielimplementierung 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

Hinweise

Die FindUsersInRole Methode wird von der Roles Klasse aufgerufen und gibt eine Liste der Benutzer in einer Rolle zurück, in der der Benutzername eine Übereinstimmung der für die konfigurierten Elemente usernameToMatchenthältapplicationName. Die Unterstützung von Wildcards ist basierend auf der Datenquelle enthalten. Benutzer werden in alphabetischer Reihenfolge nach Benutzername zurückgegeben.

Es wird empfohlen, dass Sie einen ProviderException Fall auslösen, wenn roleName in der Datenquelle nicht vorhanden ist.

Gilt für:

Weitere Informationen