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 類別會自動為您 sAMAccountName
產生參數的隨機 20 個字元用戶名稱。
參數預設為下列最大長度。
參數 | 長度上限 |
---|---|
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 將會刪除用戶實例,而不是在目錄中保留部分建構的用戶實例。