[英]What is the easiest way to validate a UPN and a NT login name?
我們允許用戶使用NT帳戶名(domain \\ account)或UPN(account @ email,xxx)輸入Active Directory帳戶信息。 我想編寫一些代碼來驗證活動目錄中的帳戶,然后再允許用戶繼續操作。 請注意,我們不驗證密碼,僅驗證帳戶名。
我可以使用UserPrincipal.FindByIdentity
,但是,這只需要一個用戶名。
我可以使用.NET驗證兩種格式的帳戶名嗎? 還是我被降級為從帳戶名中解析出域以驗證用戶輸入的兩個部分? 稍后會有點混亂,不是嗎?
嘗試從UPN創建WindowsIdentity :
WindowsIdentity wi = new WindowsIdentity("alias@example.com");
對於在AD中有效的UPN,它將成功,對於無效的UPN將引發異常。 驗證UPN的過程必須連接到AD,並具有適當的訪問權限(即,由於對模擬上下文的委派約束而無法進行匿名化)。
看一下System.DirectoryServices.AccountManagement命名空間,尤其是PrincipalSearcher 。 我認為您可以使用格式良好的QueryFilter( 通過示例查詢)來執行快速FindOne ,並檢查帳戶名或UPN。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.