Aracılığıyla paylaş


RoleProvider.GetRolesForUser(String) Yöntem

Tanım

Belirtilen kullanıcının yapılandırılan applicationNameiçin içinde yer aldığı rollerin listesini alır.

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

Parametreler

username
String

Rollerin listesini döndürecek kullanıcı.

Döndürülenler

String[]

Belirtilen kullanıcının yapılandırılan applicationNameiçin içinde bulunduğu tüm rollerin adlarını içeren bir dize dizisi.

Örnekler

Aşağıdaki kod örneği, yönteminin GetRolesForUser örnek uygulamasını gösterir.

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

Açıklamalar

GetRolesForUser, belirtilen kullanıcının veri kaynağından ilişkilendirdiği rol adlarını almak için sınıfının yöntemi Roles tarafından GetRolesForUser çağrılır. Yalnızca yapılandırılan ApplicationName için roller alınır.

Yapılandırılan applicationNameiçin belirtilen kullanıcı için hiçbir rol yoksa, sağlayıcınızın öğe içermeyen bir dize dizisi döndürmesini öneririz.

Belirtilen kullanıcı adı null boş bir dizeyse veya boş bir dizeyse, sağlayıcınızın bir özel durum oluşturmasını öneririz.

Şunlara uygulanır

Ayrıca bkz.