2016-06-01 9 views
3

可能であれば、わからないことをやろうとしています。 私は特定のサーバー上で動作するC#ベースのWebアプリケーションを持っています。私は、ユーザーがアプリケーションを実行するドメインを紹介するコードを作成したい(このサーバーはクライアントに依存し、各サーバーは異なるサーバーで実行される)、アプリケーションはそのドメインのローカルユーザーアカウントとifユーザーはロックアウトされているかどうかを確認します。c#特定のドメインでWindowsアカウントがロックアウトされているかどうかを確認します。

私はWin32_UserAccountを使用しようとしましたが、現在使用しているネットワークのユーザーを取得しているようです。

これは可能ですか?

は、 フラビオJustino

答えて

2

は、あなたが仕事をする上でのコードのためdpendency System.DirectoryServices.AccountManagement.dllを追加する必要が

using(PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "domain")) 
{ 
     using(UserPrincipal usr = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, "username")) 
     { 
      usr.IsAccountLockedOut(); //Gets if account is locked out 
     } 
} 

試しそんなに よろしくお願いします。

+0

正常に動作しますが、いくつか問題があります。たとえば、 "domain"をnull(ローカルサーバーを実行する)と "username"をユーザー名で置き換えようとしましたが、うまくいきました。しかし、私は今、アプリケーションが実行されているサーバーを指し示そうとしています。例外:サーバーに接続できませんでした。 InnerException:LDAPサーバーが使用できません。 ドメインを正しく表示する方法がわかりません。アプリケーションが実行されているサーバーが10.123.123.20 \ testで、パスワードがtest12345であるとします。 ContextType.Domainにこのドメインをどのように示す必要がありますか? –

+0

'null 'を使用すると、ローカルマシンのドメインを占有している可能性があります。サーバーは、照会するドメインの一部でなければなりません。そうでない場合は、結果を得るためにサーバー上に別のサービスを作成する必要があります。 「サーバーを指す」とはどういう意味ですか?別のドメインの一部であるローカルマシンからサーバーの 'domain'を使用して呼び出していますか? – Flowerking

+0

RDPをボックス10.123.123.20に置き、コンピュータのプロパティを確認します。または、あなたにドメインを提供できる人がいれば管理者に連絡してください.Check - http://www.elmajdal.net/win7/Joining_Windows_7_To_A_Domain/13-system-properties-after-joining-domain.png – Flowerking

関連する問題