ActiveDirectoryMembershipUser 类

定义

公开和更新 Active Directory 数据存储区中存储的成员资格用户信息。

public ref class ActiveDirectoryMembershipUser : System::Web::Security::MembershipUser
[System.Serializable]
public class ActiveDirectoryMembershipUser : System.Web.Security.MembershipUser
[<System.Serializable>]
type ActiveDirectoryMembershipUser = class
    inherit MembershipUser
Public Class ActiveDirectoryMembershipUser
Inherits MembershipUser
继承
ActiveDirectoryMembershipUser
属性

示例

下面的代码示例演示如何在网页上的对象 ActiveDirectoryMembershipUser 上使用属性,这些属性可能从多个成员资格数据存储返回用户信息。 ActiveDirectoryMembershipUserMembershipUser由于成员资格提供程序返回的对象下部的对象不实现 LastActivityDateLastLoginDate 属性,因此代码首先检查从成员资格提供程序返回的用户对象的类型,然后再显示这些属性的内容。


<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

  protected void Page_Load(object sender, EventArgs e)
  {
    MembershipUser user =
        Membership.GetUser();

    userName.Text = user.UserName;
    emailAddress.Text = user.Email;

    // <Snippet2>
    if (user is ActiveDirectoryMembershipUser)
    {
      lastLoginDate.Text = "Not available";
      lastActivityDate.Text = "Not available";
    }
    else
    {
      lastLoginDate.Text = user.LastLoginDate.ToShortDateString();
      lastActivityDate.Text = user.LastActivityDate.ToShortDateString();
    }
    // </Snippet2>   
    
    // <Snippet3>
    System.Security.Principal.SecurityIdentifier sidValue =
      (System.Security.Principal.SecurityIdentifier)user.ProviderUserKey;

    sid.Text = sidValue.ToString();
    // </Snippet3>
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>User information</title>
</head>
<body>
  <form id="form1" runat="server">
    <div>
      <table>
        <tr>
          <td>
            User name:</td>
          <td>
            <asp:Literal ID="userName" runat="server" /></td>
        </tr>
        <tr>
          <td>
            Email Address:</td>
          <td>
            <asp:Literal ID="emailAddress" runat="server" /></td>
        </tr>
        <tr>
          <td>
            Last Login Date:</td>
          <td>
            <asp:Literal ID="lastLoginDate" runat="server" /></td>
        </tr>
        <tr>
          <td>
            Last Activity Date:</td>
          <td>
            <asp:Literal ID="lastActivityDate" runat="server" /></td>
        </tr>
        <tr>
          <td>
            Security Identifier SID:</td>
          <td>
            <asp:Literal ID="sid" runat="server" /></td>
        </tr>
      </table>
    </div>
  </form>
</body>
</html>

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim user As MembershipUser = Membership.GetUser()
        
    userName.Text = user.UserName
    emailAddress.Text = user.Email
        
    ' <Snippet2>
    If TypeOf (user) Is ActiveDirectoryMembershipUser Then
      lastLoginDate.Text = "Not available"
      lastActivityDate.Text = "Not available"
    Else
      lastLoginDate.Text = user.LastLoginDate.ToString()
      lastActivityDate.Text = user.LastActivityDate.ToString()
    End If
    ' </Snippet2>
    
    ' <Snippet3>
    Dim sidValue As System.Security.Principal.SecurityIdentifier
    sidValue = CType(user.ProviderUserKey, System.Security.Principal.SecurityIdentifier)
    
    sid.Text = sidValue.ToString()
    ' </Snippet3>
  End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>User information page</title>
</head>
<body>
  <form id="form1" runat="server">
    <div>
      <table>
        <tr>
          <td>
            User name:</td>
          <td>
            <asp:Literal ID="userName" runat="server" /></td>
        </tr>
        <tr>
          <td>
            Email Address:</td>
          <td>
            <asp:Literal ID="emailAddress" runat="server" /></td>
        </tr>
        <tr>
          <td>
            Last Login Date:</td>
          <td>
            <asp:Literal ID="lastLoginDate" runat="server" /></td>
        </tr>
        <tr>
          <td>
            Last Activity Date:</td>
          <td>
            <asp:Literal ID="lastActivityDate" runat="server" /></td>
        </tr>
        <tr>
          <td>
            Security Identifier SID:</td>
          <td>
            <asp:Literal ID="sid" runat="server" /></td>
        </tr>
      </table>
    </div>
  </form>
</body>
</html>

注解

对象 ActiveDirectoryMembershipUser 用于表示 Active Directory 成员资格数据存储中的单个成员身份用户。 它公开有关成员身份用户的信息(如电子邮件地址),并为成员身份用户提供功能,例如更改或重置其密码的功能。

ActiveDirectoryMembershipUser每当应用程序配置为使用 Active Directory 数据存储时,应用程序的成员身份提供程序将返回对象。 在可配置为使用不同的数据存储的应用程序或使用多个数据存储的应用程序中,可以引用基类 MembershipUserActiveDirectoryMembershipUser由于 对象不实现 LastActivityDateLastLoginDate 属性,因此必须准备好处理NotSupportedException在对象上ActiveDirectoryMembershipUser访问这些成员时引发的 。

ActiveDirectoryMembershipUser 实现 类使用 ActiveDirectoryMembershipProvider 的内部优化,以最大程度地减少调用 UpdateUser 方法时发生的属性更新数。 它还序列化 SecurityIdentifier 属性) 中 ProviderUserKey 可用的表示形式 (,以便 ActiveDirectoryMembershipUser 可以序列化和反序列化对象,而不会引发异常。

对象ActiveDirectoryMembershipUserGetUserCreateUser 方法返回,或作为 、 FindUsersByNameFindUsersByEmail 方法返回的 的一GetAllUsers部分MembershipUserCollection

ActiveDirectoryMembershipUser如果要更新现有成员身份用户的信息,UpdateUser方法需要 对象。

ActiveDirectoryMembershipUser 属性映射到 Active Directory 属性。 下表列出了 ActiveDirectoryMembershipUser 属性及其默认属性映射。

properties 默认目录属性 是否可以映射?
ProviderUserKey securityIdentifier
UserName userPrincipalName 是,但必须是 userPrincipalName 或 sAMAccountName
Comment comment
CreationDate whenCreated
Email mail 是,但必须是 Unicode String 类型的单值属性。
LastActivityDate 不适用 不受 ActiveDirectoryMembershipProvider 支持。
LastLoginDate 不适用 不受 ActiveDirectoryMembershipProvider 支持。
LastPasswordChangedDate pwdLastSet
PasswordQuestion 无,但如果使用问答安全性进行密码重置或检索,则必须映射到属性。 是,但必须是 Unicode String 类型的单值属性。
IsApproved User-Account-Control (AD)

mDS-UserAccountDisabled (ADAM)
IsLockedOut 计算自 lockoutTime Windows 2000 上的 AD 锁定持续时间 (AD)

msDS-User-Account-Control-Computed Windows Server 2003 上的 (AD)

msDS-User-Account-Control-Computed (ADAM)
LastLockoutDate 如果由于密码错误尝试次数过多而被锁定,则返回锁定时间属性。

如果由于密码答案错误尝试次数过多而被锁定,则返回存储在 由 attributeMapFailedPasswordAnswerLockoutTime 定义的 属性中的值。

如果由于密码错误和密码错误尝试次数过多而被锁定,则返回最新的日期/时间值。

如果帐户未锁定,则返回 1/1/1753,以保持 SQL 兼容性。

构造函数

ActiveDirectoryMembershipUser()

为继承 ActiveDirectoryMembershipUser 类的类初始化 ActiveDirectoryMembershipUser 对象的新实例。

ActiveDirectoryMembershipUser(String, String, Object, String, String, String, Boolean, Boolean, DateTime, DateTime, DateTime, DateTime, DateTime)

使用指定的属性值创建 ActiveDirectoryMembershipUser 类的新实例。

属性

Comment

获取或设置成员资格用户的应用程序特定信息。

CreationDate

获取将用户添加到成员资格数据存储的日期和时间。

(继承自 MembershipUser)
Email

获取或设置成员资格用户的电子邮件地址。

IsApproved

获取或设置一个值,该值指示成员资格用户是否可以进行身份验证。

IsLockedOut

获取一个值,该值指示成员资格用户是否已锁定而无法验证。

(继承自 MembershipUser)
IsOnline

获取用户当前是否处于联机状态。

(继承自 MembershipUser)
LastActivityDate

在所有情况下都会引发 NotSupportedException 异常。

LastLockoutDate

获取成员资格用户被锁定的最新日期和时间。

(继承自 MembershipUser)
LastLoginDate

在所有情况下都会引发 NotSupportedException 异常。

LastPasswordChangedDate

获取成员资格用户密码的上次更新日期和时间。

(继承自 MembershipUser)
PasswordQuestion

获取成员资格用户的密码问题。

(继承自 MembershipUser)
ProviderName

获取成员资格提供程序的名称,该提供程序存储并检索成员资格用户的用户信息。

(继承自 MembershipUser)
ProviderUserKey

从 Active Directory 数据存储区获取成员资格用户的用户标识符。

UserName

获取成员身份用户的登录名。

(继承自 MembershipUser)

方法

ChangePassword(String, String)

在成员资格数据存储中更新成员资格用户的密码。

(继承自 MembershipUser)
ChangePasswordQuestionAndAnswer(String, String, String)

为成员资格数据存储中的成员资格用户更新密码问题和答案。

(继承自 MembershipUser)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetPassword()

从成员资格数据存储中获取成员资格用户的密码。

(继承自 MembershipUser)
GetPassword(String)

从成员资格数据存储中获取成员资格用户的密码。

(继承自 MembershipUser)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ResetPassword()

将用户密码重置为自动生成的新密码。

(继承自 MembershipUser)
ResetPassword(String)

将用户密码重置为自动生成的新密码。

(继承自 MembershipUser)
ToString()

返回成员资格用户的用户名。

(继承自 MembershipUser)
UnlockUser()

清除用户锁定状态,以便验证成员资格用户。

(继承自 MembershipUser)

适用于

另请参阅