.NET Framework 类库
RoleProvider.GetUsersInRole 方法

注意:此方法在 .NET Framework 2.0 版中是新增的。

获取属于已配置的 applicationName 的指定角色的用户的列表。

命名空间:System.Web.Security
程序集:System.Web(在 system.web.dll 中)

语法

Visual Basic(声明)
Public MustOverride Function GetUsersInRole ( _
    roleName As String _
) As String()
Visual Basic(用法)
Dim instance As RoleProvider
Dim roleName As String
Dim returnValue As String()

returnValue = instance.GetUsersInRole(roleName)
C#
public abstract string[] GetUsersInRole (
    string roleName
)
C++
public:
virtual array<String^>^ GetUsersInRole (
    String^ roleName
) abstract
J#
public abstract String[] GetUsersInRole (
    String roleName
)
JScript
public abstract function GetUsersInRole (
    roleName : String
) : String[]

参数

roleName

一个角色名称,将获取该角色的用户列表。

返回值

一个字符串数组,其中包含属于已配置的 applicationName 的指定角色的成员的所有用户名。
备注

GetUsersInRoleRoles 类的 GetUsersInRole 方法调用,以从数据源检索与某个角色相关联的用户名。仅检索已配置的 ApplicationName 的角色。

如果对于已配置的 applicationName 不存在指定角色名,或者如果指定角色名为 空引用(在 Visual Basic 中为 Nothing) 或空字符串,则建议提供程序引发异常。

如果没有与已配置的 applicationName 的指定角色相关联的用户,则建议提供程序返回不包含任何元素的字符串数组。

示例

下面的代码示例演示 GetUsersInRole 方法的示例实现。

Visual Basic
Public Overrides Function GetUsersInRole(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 [" & usersInRolesTable & "]" & _
                                           " 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
C#
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 [" + usersInRolesTable + "]"  +
                                    " 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];
}
平台

Windows 98、Windows 2000 SP4、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0
请参见

标记 :


Page view tracker