簡體   English   中英

驗證UPN和NT登錄名的最簡單方法是什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM