Rediger

Del via


RoleProvider.CreateRole(String) Method

Definition

Adds a new role to the data source for the configured applicationName.

public:
 abstract void CreateRole(System::String ^ roleName);
public abstract void CreateRole (string roleName);
abstract member CreateRole : string -> unit
Public MustOverride Sub CreateRole (roleName As String)

Parameters

roleName
String

The name of the role to create.

Examples

The following code example shows a sample implementation of the CreateRole method.

public override void CreateRole(string rolename)
{ 
  if (rolename == null || rolename == "")
    throw new ProviderException("Role name cannot be empty or null.");
  if (rolename.Contains(","))
    throw new ArgumentException("Role names cannot contain commas.");
  if (RoleExists(rolename))
    throw new ProviderException("Role name already exists.");
  if (rolename.Length > 255)
    throw new ProviderException("Role name cannot exceed 255 characters.");

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

  cmd.Parameters.Add("@Rolename", OdbcType.VarChar, 255).Value = rolename;
  cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName;

  try
  {
    conn.Open();

    cmd.ExecuteNonQuery();
  }
  catch (OdbcException)
  {
    // Handle exception.
  }
  finally
  {
    conn.Close();      
  }
}
Public Overrides Sub CreateRole(rolename As String) 
  If rolename Is Nothing OrElse rolename = "" Then _
    Throw New ProviderException("Role name cannot be empty or null.")
  If rolename.Contains(",") Then _
    Throw New ArgumentException("Role names cannot contain commas.")
  If RoleExists(rolename) Then _
    Throw New ProviderException("Role name already exists.")
  If rolename.Length > 255 Then _
    Throw New ProviderException("Role name cannot exceed 255 characters.")

  Dim conn As OdbcConnection = New OdbcConnection(connectionString)
            Dim cmd As OdbcCommand = New OdbcCommand("INSERT INTO Roles " & _
                                                     " (Rolename, ApplicationName) " & _
                                                     " Values(?, ?)", conn)

            cmd.Parameters.Add("@Rolename", OdbcType.VarChar, 255).Value = rolename
            cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName

            Try
                conn.Open()

                cmd.ExecuteNonQuery()
            Catch e As OdbcException
                ' Handle exception.
            Finally
                conn.Close()
            End Try
        End Sub

Remarks

CreateRole is called by the CreateRole method of the Roles class to add the specified role to the data source for the configured ApplicationName.

If the specified role name already exists for the configured applicationName, is null, or is an empty string, we recommend that your provider throw an exception.

If the specified role name contains a comma, we recommend that your provider throw an exception.

If your data source restricts the length of the role name, for example, through a fixed-length column of a table in a database, we recommend that you throw an exception if the role name exceeds the maximum length allowed by the data source.

Applies to

See also