ActiveDirectoryMembershipProvider.CreateUser 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将新用户添加到 Active Directory 数据存储区。
public:
override System::Web::Security::MembershipUser ^ CreateUser(System::String ^ username, System::String ^ password, System::String ^ email, System::String ^ passwordQuestion, System::String ^ passwordAnswer, bool isApproved, System::Object ^ providerUserKey, [Runtime::InteropServices::Out] System::Web::Security::MembershipCreateStatus % status);
public override System.Web.Security.MembershipUser CreateUser (string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out System.Web.Security.MembershipCreateStatus status);
override this.CreateUser : string * string * string * string * string * bool * obj * MembershipCreateStatus -> System.Web.Security.MembershipUser
Public Overrides Function CreateUser (username As String, password As String, email As String, passwordQuestion As String, passwordAnswer As String, isApproved As Boolean, providerUserKey As Object, ByRef status As MembershipCreateStatus) As MembershipUser
参数
- username
- String
新用户的用户名。
- password
- String
新用户的密码。
- String
新用户的电子邮件地址。
- passwordQuestion
- String
新用户的密码提示问题。
- passwordAnswer
- String
新用户的密码提示问题答案。
- isApproved
- Boolean
是否允许验证新用户。
- providerUserKey
- Object
用户的成员资格数据源中的唯一标识符。 使用 ActiveDirectoryMembershipProvider 类时,此参数必须为 null
。
- status
- MembershipCreateStatus
此方法返回时,包含一个 MembershipCreateStatus 枚举值,指示是否成功创建了用户。
返回
一个 ActiveDirectoryMembershipUser 实例,包含新创建用户的信息;如果未成功创建用户,则为 null
。
例外
providerUserKey
参数不是 null
。
管理员尚未将密码提示问题和答案字段映射到 Active Directory 架构的特性,并且 passwordQuestion
或 passwordAnswer
参数不是 null
。
machineKey 元素(ASP.NET 设置框架)配置元素指示自动生成的计算机加密密钥。 必须将 machineKey 元素(ASP.NET 设置框架)元素的 decryptionKey
属性显式设置为使用 ActiveDirectoryMembershipProvider 存储密码提示问题答案。
- 或 -
尝试设置新用户的密码时,ActiveDirectoryMembershipProvider 无法建立到目录的安全连接。
尝试创建用户时出现错误。
在初始化 CreateUser(String, String, String, String, String, Boolean, Object, MembershipCreateStatus) 实例前,调用了 ActiveDirectoryMembershipProvider 方法。
注解
CreateUser方法由 Membership 类调用,以在 Active Directory 数据存储区中创建新用户。
对于 ACTIVE Directory 和 Active Directory 应用程序模式 (ADAM) 服务器, ActiveDirectoryMembershipProvider 类要求目录中的实例类为 user
。 不支持替代用户类,例如 inetOrgPerson
。
使用 Active Directory 服务器并将用户名映射到 userPrincipalName
属性时, ActiveDirectoryMembershipProvider 类将代表你自动生成参数的随机 20 个字符用户名 sAMAccountName
。
参数默认为以下最大长度。
参数 | 最大长度 |
---|---|
username |
如果使用 属性, userPrincipalName 则为 64 个字符。 如果使用 sAMAccountName 属性,则常见限制为 20 个字符或更少。 |
password |
128 个字符。 |
email |
256 个字符。 |
passwordQuestion |
256 个字符。 |
passwordAnswer |
加密前后 128 个字符。 |
Comment返回ActiveDirectoryMembershipUser的实例上的 属性限制为 1024 个字符。
如果通过减少这些属性的最大允许长度修改了目录架构,则优先使用这些长度。
在创建用户之前, ActiveDirectoryMembershipProvider 类将确保用户名是唯一的。 如果实例 ActiveDirectoryMembershipProvider 配置为需要唯一的电子邮件地址,它还将确保电子邮件地址是唯一的。
在 Active Directory 中,用户名映射到 userPrincipalName
时,通过执行 GC 搜索来强制实施用户名唯一性。 如果使用 sAMAccountName
,则目录将自动在整个 Active Directory 域中强制实施 的唯一性 sAMAccountName
。
ADAM 服务器将自动在所有应用程序分区中强制实施 的 userPrincipalName
用户名唯一性。
从创建用户的容器的根目录开始,对重复的电子邮件地址执行子树搜索,可以强制实施电子邮件地址的唯一性。 如果连接到 Active Directory 且未在连接字符串) 指定容器,则这是默认用户容器 (,或者在连接字符串中指定的容器。
类 ActiveDirectoryMembershipProvider 直接在连接字符串中指定的用户容器中创建用户。 有关连接字符串的详细信息, ActiveDirectoryMembershipProvider 请参阅类主题。
若要在 Active Directory 服务器上设置密码, connectionProtection
必须将 属性设置为 SignAndSeal。
使用 ADAM 服务器时, connectionProtection
属性可以设置为 None,但前提是显式配置 ADAM 服务器以允许通过不安全的连接更改密码。
从除 之外 password
的所有字符串参数值中剪裁前导空格和尾随空格。
重要
除非用于连接到 Active Directory 服务器的凭据具有“域管理员”权限 (不建议) 或“创建子实例”、“删除子实例”和“设置密码”访问权限,否则无法创建新用户。 需要“删除子实例”访问权限,因为创建用户是一个多步骤过程,如果创建用户的任何步骤失败,类 ActiveDirectoryMembershipProvider 将删除用户实例,而不是在目录中保留部分构造的用户实例。