RoleProvider.GetRolesForUser(String) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
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.