RoleProvider.GetRolesForUser(String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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 applicationName
vorhanden 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.