Freigeben über


RoleProvider.GetRolesForUser(String) Methode

Definition

Ruft eine Liste der Rollen für einen angegebenen Benutzer für das konfigurierte applicationName ab.

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

Parameter

username
String

Der Benutzer, für den eine Liste der Rollen zurückgegeben werden soll.

Gibt zurück

String[]

Ein Zeichenfolgenarray, das die Namen aller Rollen des angegebenen Benutzers für den konfigurierten applicationName enthält.

Beispiele

Das folgende Codebeispiel zeigt eine Beispielimplementierung der GetRolesForUser -Methode.

public override string[] GetRolesForUser(string username)
{
  if (username == null || username == "")
    throw new ProviderException("User name cannot be empty or null.");

  string tmpRoleNames = "";

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

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

  OdbcDataReader reader = null;

  try
  {
    conn.Open();

    reader = cmd.ExecuteReader();

    while (reader.Read())
    {
      tmpRoleNames += reader.GetString(0) + ",";
    }
  }
  catch (OdbcException)
  {
    // Handle exception.
  }
  finally
  {
    if (reader != null) { reader.Close(); }
    conn.Close();      
  }

  if (tmpRoleNames.Length > 0)
  {
    // Remove trailing comma.
    tmpRoleNames = tmpRoleNames.Substring(0, tmpRoleNames.Length - 1);
    return tmpRoleNames.Split(',');
  }

  return new string[0];
}
Public Overrides Function GetRolesForUser(ByVal username As String) As String()
    If username Is Nothing OrElse username = "" Then _
      Throw New ProviderException("User name cannot be empty or null.")

    Dim tmpRoleNames As String = ""

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

    cmd.Parameters.Add("@Username", OdbcType.VarChar, 255).Value = username
    cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName

    Dim reader As OdbcDataReader = Nothing

    Try
        conn.Open()

        reader = cmd.ExecuteReader()

        Do While reader.Read()
            tmpRoleNames &= reader.GetString(0) & ","
        Loop
    Catch e As OdbcException
        ' Handle exception.
    Finally
        If Not reader Is Nothing Then reader.Close()
        conn.Close()
    End Try

    If tmpRoleNames.Length > 0 Then
        ' Remove trailing comma.
        tmpRoleNames = tmpRoleNames.Substring(0, tmpRoleNames.Length - 1)
        Return tmpRoleNames.Split(CChar(","))
    End If

    Return New String() {}
End Function

Hinweise

GetRolesForUser wird von der GetRolesForUser -Methode der Roles -Klasse aufgerufen, um die Rollennamen abzurufen, denen der angegebene Benutzer aus der Datenquelle zugeordnet ist. Nur die Rollen für die konfigurierte ApplicationName werden abgerufen.

Wenn für den angegebenen Benutzer keine Rollen für den konfigurierten applicationNamevorhanden sind, wird empfohlen, dass Ihr Anbieter ein Zeichenfolgenarray ohne Elemente zurückgibt.

Wenn der angegebene Benutzername eine leere Zeichenfolge ist null oder ist, wird empfohlen, dass Ihr Anbieter eine Ausnahme auslöst.

Gilt für:

Weitere Informationen