请单击以进行评分并提供反馈
MSDN
MSDN Library
.NET 开发
先前版本
RoleProvider 类
 DeleteRole 方法
全部折叠/全部展开 全部折叠
此页面仅适用于
Microsoft Visual Studio 2005/.NET Framework 2.0

同时提供下列产品的其他版本:
.NET Framework 类库
RoleProvider.DeleteRole 方法

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

从数据源中移除已配置的 applicationName 的角色。

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

Visual Basic(声明)
Public MustOverride Function DeleteRole ( _
    roleName As String, _
    throwOnPopulatedRole As Boolean _
) As Boolean
Visual Basic(用法)
Dim instance As RoleProvider
Dim roleName As String
Dim throwOnPopulatedRole As Boolean
Dim returnValue As Boolean

returnValue = instance.DeleteRole(roleName, throwOnPopulatedRole)
C#
public abstract bool DeleteRole (
    string roleName,
    bool throwOnPopulatedRole
)
C++
public:
virtual bool DeleteRole (
    String^ roleName, 
    bool throwOnPopulatedRole
) abstract
J#
public abstract boolean DeleteRole (
    String roleName, 
    boolean throwOnPopulatedRole
)
JScript
public abstract function DeleteRole (
    roleName : String, 
    throwOnPopulatedRole : boolean
) : boolean

参数

roleName

要删除的角色的名称。

throwOnPopulatedRole

如果为 true,则在 roleName 具有一个或多个成员时引发异常,并且不删除 roleName

返回值

如果成功删除角色,则为 true;否则为 false

DeleteRoleRoles 类的 DeleteRoleDeleteRole 方法调用,以从数据源中删除已配置的 ApplicationName 的指定角色。

从数据源删除角色时,确保也删除用户名与已配置的 applicationName 的已删除角色之间的任何关联。

如果 throwOnPopulatedRoletrue,且由 roleName 参数标识的角色具有一个或多个成员,则引发 ProviderException,并且不删除该角色。如果 throwOnPopulatedRolefalse,则不论角色是否为空,都会删除该角色。

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

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

Visual Basic
Public Overrides Function DeleteRole(rolename As String, throwOnPopulatedRole As Boolean) As Boolean
  If Not RoleExists(rolename) Then            
    Throw New ProviderException("Role does not exist.")
  End If

  If throwOnPopulatedRole AndAlso GetUsersInRole(rolename).Length > 0 Then
    Throw New ProviderException("Cannot delete a populated role.")
  End If

  Dim conn As OdbcConnection = New OdbcConnection(connectionString)
  Dim cmd As OdbcCommand = New OdbcCommand("DELETE FROM [" & rolesTable & "]"  & _
                                           " WHERE Rolename = ? AND ApplicationName = ?", conn)

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

  Dim cmd2 As OdbcCommand = New OdbcCommand("DELETE FROM [" & usersInRolesTable & "]"  & _
                                            " WHERE Rolename = ? AND ApplicationName = ?", conn)

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

  Try
    conn.Open()

    cmd2.ExecuteNonQuery()
    cmd.ExecuteNonQuery()
  Catch e As OdbcException
    ' Handle exception.

    Return False
  Finally
    conn.Close()      
  End Try

  Return True
End Function
C#
public override bool DeleteRole(string rolename, bool throwOnPopulatedRole)
{
  if (!RoleExists(rolename))
  {
    throw new ProviderException("Role does not exist.");
  }

  if (throwOnPopulatedRole && GetUsersInRole(rolename).Length > 0)
  {
    throw new ProviderException("Cannot delete a populated role.");
  }

  OdbcConnection conn = new OdbcConnection(connectionString);
  OdbcCommand cmd = new OdbcCommand("DELETE FROM [" + rolesTable + "]"  +
                                    " WHERE Rolename = ? AND ApplicationName = ?", conn);

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

  OdbcCommand cmd2 = new OdbcCommand("DELETE FROM [" + usersInRolesTable + "]"  +
                                     " WHERE Rolename = ? AND ApplicationName = ?", conn);

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

  try
  {
    conn.Open();

    cmd2.ExecuteNonQuery();
    cmd.ExecuteNonQuery();
  }
  catch (OdbcException)
  {
    // Handle exception.

    return false;
  }
  finally
  {
    conn.Close();      
  }

  return true;
}

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
社区内容   什么是社区内容?
添加新内容 RSS  批注
Processing
© 2009 Microsoft Corporation 版权所有。 保留所有权利 | 商标 | 隐私权声明
Page view tracker