RoleProvider.GetUsersInRole(String) Methode

Definitie

Hiermee haalt u een lijst met gebruikers op in de opgegeven rol voor de geconfigureerde applicationName.

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

Parameters

roleName
String

De naam van de rol voor het ophalen van de lijst met gebruikers.

Retouren

String[]

Een tekenreeksmatrix met de namen van alle gebruikers die lid zijn van de opgegeven rol voor de geconfigureerde applicationName.

Voorbeelden

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

Opmerkingen

GetUsersInRole wordt aangeroepen door de GetUsersInRole methode van de Roles klasse om de gebruikersnamen op te halen die zijn gekoppeld aan een rol uit de gegevensbron. Alleen de rollen voor de geconfigureerde ApplicationName worden opgehaald.

Als de opgegeven rolnaam niet bestaat voor de geconfigureerde applicationName of als het een lege tekenreeks is null , raden we u aan dat uw provider een uitzondering genereert.

Als er geen gebruikers zijn gekoppeld aan de opgegeven rol voor de geconfigureerde applicationName, raden we aan dat uw provider een tekenreeksmatrix zonder elementen retourneert.

Van toepassing op

Zie ook