RoleProvider.GetRolesForUser(String) Methode

Definitie

Hiermee wordt een lijst opgehaald met de rollen waarin een opgegeven gebruiker zich bevindt voor de geconfigureerde applicationName.

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

Parameters

username
String

De gebruiker waarvoor een lijst met rollen moet worden geretourneerd.

Retouren

String[]

Een tekenreeksmatrix met de namen van alle rollen waarin de opgegeven gebruiker zich bevindt voor de geconfigureerde applicationName.

Voorbeelden

In het volgende codevoorbeeld ziet u een voorbeeld van de implementatie van de 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

Opmerkingen

GetRolesForUser wordt aangeroepen door de GetRolesForUser methode van de Roles klasse om de rolnamen op te halen waaraan de opgegeven gebruiker is gekoppeld uit de gegevensbron. Alleen de rollen voor de geconfigureerde ApplicationName worden opgehaald.

Als er geen rollen bestaan voor de opgegeven gebruiker voor de geconfigureerde applicationName, raden we aan dat uw provider een tekenreeksmatrix zonder elementen retourneert.

Als de opgegeven gebruikersnaam een lege tekenreeks is null of is, is het raadzaam dat uw provider een uitzondering genereert.

Van toepassing op

Zie ook