使用英语阅读

通过


RoleProvider.GetUsersInRole(String) 方法

定义

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

public abstract string[] GetUsersInRole(string roleName);

参数

roleName
String

要获取其用户列表的角色的名称。

返回

String[]

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

示例

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

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];
}

注解

GetUsersInRoleGetUsersInRole 类的 Roles 方法调用,以从数据源检索与角色关联的用户名。 仅检索已配置 ApplicationName 的角色。

如果配置的 applicationName 不存在指定的角色名称,或者如果为 null 或为空字符串,建议提供程序引发异常。

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

适用于

产品 版本
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

另请参阅