请单击以进行评分并提供反馈
MSDN
MSDN Library
.NET 开发
先前版本
RoleProvider 类
 IsUserInRole 方法

  开启低带宽视图
此页面仅适用于
Microsoft Visual Studio 2005/.NET Framework 2.0

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

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

获取一个值,指示指定用户是否属于已配置的 applicationName 的指定角色。

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

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

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

参数

username

要搜索的用户名。

roleName

作为搜索范围的角色。

返回值

如果指定用户属于已配置的 applicationName 的指定角色,则为 true;否则为 false

IsUserInRole 方法由 Roles 类的 IsUserInRole 方法和 RolePrincipal 类的 IsInRole 方法调用,以确定当前登录用户是否与数据源中已配置的 ApplicationName 的某个角色相关联。

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

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

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

Visual Basic
Public Overrides Function IsUserInRole(username As String, rolename As String) As Boolean 
  If username Is Nothing OrElse username = "" Then _
    Throw New ProviderException("User name cannot be empty or null.")
  If rolename Is Nothing OrElse rolename = "" Then _
    Throw New ProviderException("Role name cannot be empty or null.")

  Dim userIsInRole As Boolean = False

  Dim conn As OdbcConnection = New OdbcConnection(connectionString)
  Dim cmd As OdbcCommand = New OdbcCommand("SELECT COUNT(*) FROM [" & usersInRolesTable & "]" & _
                                           " WHERE Username = ? AND Rolename = ? AND ApplicationName = ?", conn)

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

  Try
    conn.Open()

    Dim numRecs As Integer = CType(cmd.ExecuteScalar(), Integer)

    If numRecs > 0 Then
      userIsInRole = True
    End If
  Catch e As OdbcException
    ' Handle exception.
  Finally
    conn.Close()      
  End Try

  Return userIsInRole
End Function
C#
public override bool IsUserInRole(string username, string rolename)
{
  if (username == null || username == "")
    throw new ProviderException("User name cannot be empty or null.");
  if (rolename == null || rolename == "")
    throw new ProviderException("Role name cannot be empty or null.");

  bool userIsInRole = false;

  OdbcConnection conn = new OdbcConnection(connectionString);
  OdbcCommand cmd = new OdbcCommand("SELECT COUNT(*) FROM [" + usersInRolesTable + "]"  +
                                    " WHERE Username = ? AND Rolename = ? AND ApplicationName = ?", conn);

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

  try
  {
    conn.Open();

    int numRecs = (int)cmd.ExecuteScalar();

    if (numRecs > 0)
    {
      userIsInRole = true;
    }
  }
  catch (OdbcException)
  {
    // Handle exception.
  }
  finally
  {
    conn.Close();      
  }

  return userIsInRole;
}

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