Comparteix a través de


RoleProvider.GetRolesForUser(String) Método

Definición

Obtiene una lista de los roles en los que está incluido el usuario especificado para el applicationName configurado.

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

Parámetros

username
String

Usuario del que se va a devolver una lista de roles.

Devoluciones

String[]

Matriz de cadenas que contiene los nombres de todos los roles en los que está incluido el usuario especificado para el applicationName especificado.

Ejemplos

En el ejemplo de código siguiente se muestra una implementación de ejemplo del GetRolesForUser método .

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

Comentarios

GetRolesForUserel método de la Roles clase llama GetRolesForUser a para recuperar los nombres de rol a los que está asociado el usuario especificado desde el origen de datos. Solo se recuperan los roles para el configurado ApplicationName .

Si no existe ningún rol para el usuario especificado para el configurado applicationName, se recomienda que el proveedor devuelva una matriz de cadenas sin elementos.

Si el nombre de usuario especificado es null o es una cadena vacía, se recomienda que el proveedor produzca una excepción.

Se aplica a

Consulte también