.NET Framework 类库
RoleProvider.CreateRole 方法

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

在数据源中为已配置的 applicationName 添加一个新角色。

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

语法

Visual Basic(声明)
Public MustOverride Sub CreateRole ( _
    roleName As String _
)
Visual Basic(用法)
Dim instance As RoleProvider
Dim roleName As String

instance.CreateRole(roleName)
C#
public abstract void CreateRole (
    string roleName
)
C++
public:
virtual void CreateRole (
    String^ roleName
) abstract
J#
public abstract void CreateRole (
    String roleName
)
JScript
public abstract function CreateRole (
    roleName : String
)

参数

roleName

要创建的角色的名称。

备注

CreateRoleRoles 类的 CreateRole 方法调用,以在数据源中为已配置的 ApplicationName 添加指定角色。

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

如果指定角色名包含逗号,则建议提供程序引发异常。

如果数据源限制角色名的长度(例如通过数据库中的表的固定长度列),则建议在角色名超过数据源所允许的最大长度时引发异常。

示例

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

Visual Basic
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.IndexOf(",") > 0 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 [" & rolesTable & "]" & _
                                           " (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
C#
public override void CreateRole(string rolename)
{ 
  if (rolename == null || rolename == "")
    throw new ProviderException("Role name cannot be empty or null.");
  if (rolename.IndexOf(',') > 0)
    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 [" + rolesTable + "]"  +
                                    " (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();      
  }
}
平台

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