使用英语阅读

通过


RoleProvider.AddUsersToRoles(String[], String[]) 方法

定义

向配置的 applicationName 的指定角色添加指定的用户名。

public abstract void AddUsersToRoles(string[] usernames, string[] roleNames);

参数

usernames
String[]

要添加到指定的角色的用户名的字符串数组。

roleNames
String[]

要添加指定的用户名的角色名称的字符串数组。

示例

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

public override void AddUsersToRoles(string[]  usernames, string[] rolenames)
{
  foreach (string rolename in rolenames)
  {
    if (rolename == null || rolename == "")
      throw new ProviderException("Role name cannot be empty or null.");
    if (!RoleExists(rolename))
      throw new ProviderException("Role name not found.");
  }

  foreach (string username in usernames)
  {
    if (username == null || username == "")
      throw new ProviderException("User name cannot be empty or null.");
    if (username.Contains(","))
      throw new ArgumentException("User names cannot contain commas.");

    foreach (string rolename in rolenames)
    {
      if (IsUserInRole(username, rolename))
        throw new ProviderException("User is already in role.");
    }
  }

  OdbcConnection conn = new OdbcConnection(connectionString);
  OdbcCommand cmd = new OdbcCommand("INSERT INTO UsersInRoles "  +
                                    " (Username, Rolename, ApplicationName) " +
                                    " Values(?, ?, ?)", conn);

  OdbcParameter userParm = cmd.Parameters.Add("@Username", OdbcType.VarChar, 255);
  OdbcParameter roleParm = cmd.Parameters.Add("@Rolename", OdbcType.VarChar, 255);
  cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName;

  try
  {
    conn.Open();

    foreach (string username in usernames)
    {
      foreach (string rolename in rolenames)
      {
        userParm.Value = username;
        roleParm.Value = rolename;
        cmd.ExecuteNonQuery();
      }
    }
  }
  catch (OdbcException)
  {
    // Handle exception.
  }
  finally
  {
    conn.Close();      
  }
}

注解

AddUsersToRolesRoles 类调用,以将指定用户与数据源中的指定角色相关联。 角色将添加到配置的 ApplicationName

如果未为配置的 applicationName找到任何指定角色名称,建议提供程序引发 ProviderException

如果任何指定的用户名未与配置 applicationName的任何指定角色名称相关联,建议提供程序引发 ProviderException

如果任何指定的用户名为 null 或为空字符串,建议提供程序引发异常。

如果任何指定角色名称为 null 或为空字符串,建议提供程序引发异常。

如果数据源支持事务,建议在事务中包含每个添加操作,并回滚事务,并在任何添加操作失败时引发异常。

适用于

产品 版本
.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

另请参阅