5

Windows の currentuser がドメイン ユーザーまたはローカル ユーザーであることを確認する必要がありますか? これで My CurrentPrincipal を取得します。

 System.Threading.Thread.CurrentPrincipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
4

3 に答える 3

4

通常、Windows の非ドメイン ユーザーには UPN 名がありません。以下のように /upn で WHOAMI を起動すると:

C:\>WHOAMI /UPN
ERROR: Unable to get User Principal Name (UPN) as the current logged-on user
       is not a domain user.

これに基づいて、以下のコードを使用して、ユーザーがドメイン ユーザーであるかどうかを確認できます。

 var upnName = System.DirectoryServices.AccountManagement.UserPrincipal.Current.UserPrincipalName;
    if (upnName == null)
    {
        //not a domain user
    }

もう 1 つの時間のかかる方法は、ユーザー名を SAM 形式で取得することです。次に、DirectoryEntry、DirectorySearcher、およびその他の AD API を使用して、マシンの参加しているすべてのドメインを繰り返し処理し、繰り返し処理するドメインのいずれかにユーザーがいるかどうかを確認します。

マシンex1ex2のすべてのドメインを見つける

C# で Active Directory からドメイン ユーザー情報を取得する方法は次のとおりです。

于 2012-06-09T15:04:15.020 に答える