Windows system >> Windowsの知識 >  >> Windows Serverシステムのチュートリアル >> Windows Serverチュートリアル >> .NET Frameworkを使用してActive Directoryにアクセスする(2)

.NET Frameworkを使用してActive Directoryにアクセスする(2)

  

ここでの最初のコンストラクタは、引数なしでオブジェクトを作成する基本的なデフォルトのコンストラクタです。これは、オブジェクトが指定されたセキュリティ権限なしでネイティブWinNTプロバイダに接続することを意味します。
第二の構成は、任意のドメインに接続するために必要な特定の資格情報を使用する場合、必要なローカライズにAD証明書への接続を指定することを可能に
、この構成は非常に便利です。

2番目のコンストラクタはLoginPathパラメータを追加します。これにより、LoginPathをオーバーライドして、既定のプロバイダ以外のサービスプロバイダを選択できるようになります。

次のコードは、次のように私は「アクティブなアプローチ」のコードと呼んでいるものです:


公共DSHelper.DSUser LoadUser(文字列名)

この方法ユーザ名を受け取り、現在のプロバイダでDirectoryEntryを探すために使用されます。見つからない場合は、単にNULLを返します。公共可能System.Boolean AddUserToGroup(文字列のグループ名、DSHelper.DSUser dsUser)
例DSUserクラス


この方法は、既存のグループの名前とカスタムを受け取り、ユーザーを追加しようとして提供するために、グループでは。これはimpersonation()を見ることができる最初の方法でもあります。このアプローチの中心は、そのコード行:

公共System.Collections.ArrayListのGetGroups()

私たちは、ドメイン内のすべてのグループのリストを取得するために、このメソッドを使用します。

公共可能System.Booleanは、deleteuser(DSHelper.DSUser dsUser)

このメソッドは、指定したユーザー名を取得し、完全にActive Directoryからそれを削除します。

公共System.DirectoryServices.DirectoryEntry SaveUser(DSHelper.DSUser dsUser)データベース内のレコードを保存して挿入する

本当の能力、完全なDAL呼び出すことはできません。上記の方法では、これら2つのタスクを実行することができ、最初にADを調べて指定されたユーザーが存在するかどうかを確認します。もしそうなら、それは私たちが提供するデータでユーザーを更新します。ユーザーが存在しない場合は、ユーザーが作成されます。

公共可能System.Boolean接続()

最後に、我々はデータベースに接続する方法が必要、connect()メソッドは、このタスクを達成するために使用されます。それは、この時点で、それは指定されたADの操作または使用のいずれかの偽の証明書を実行していない、我々は唯一のセキュリティ証明書が存在しない場合に提案を行う必要のみ証明書を、提供することに留意しなければならない、DALは読み取り専用ことができます状態の下で使用されます。

DALを使用してASP.NETユーザー管理ページを作成する方法を確認するために、上記のものをいくつか紹介します。
この例のプロジェクトで
ASP.NETユーザー管理ページ

、我々はそれがまた、テキストボックスを提供し、システム管理者ユーザーのユーザー名とパスワードを入力することができました、私たちは、フィールドを入力することができますどのユーザーの名前でも、そのすべてのプロパティが一覧表示されます。ユーザーを編集、保存、または完全に削除することもできます。

DALと対話する部分に焦点を当てて、プロジェクト全体を詳細に確認しましょう。読者は、インターフェースを改善し、実際にはより使いやすく親しみやすいデザインを作成するために新しい方法を使用することを検討しています。さらに、読者はコンソールアプリケーションを使用してインターフェースを作成する方法を検討することもできます。

遊ぶ

「遊ぶ」という言葉は、他人またはユーザーとして操作を実行することを意味します。このASP.NETアプリケーションでは、IISが匿名アクセス用の既定のアカウントを処理するために使用するASP.NETユーザーではなく、一時的に他のユーザーを招待することができます。リソースに適切な変更を加えるために、私たち自身のコードが他のユーザーにADリソースへのより多くのアクセス権を与えることができるようにしたいです。このプロセスを完了するのはとても簡単です。相互運用機能を介したときは

#regionセットアップ偽装
//あなたはCOM
公共のconst int型LOGON32_LOGON_INTERACTIVE = 2からにInteropServicesによってプレーを完了するのにインポートする必要があり詳細を保存する必要があります。
公共のconst int型LOGON32_PROVIDER_DEFAULTを= 0; System.Security.Principal.WindowsImpersonationContext impersonationContext
;
[DLLIMPORT(& QUOT;のAdvapi32.dll& QUOT;のCharSet = CharSet.Auto)]のLogonUser
パブリック静的にextern int型(文字列lpszUserName 、
ストリングlpszDomain、列lpszPassword、INT dwLogonType、INT dwLogonProvider、
のIntPtr phToken REF);
[DLLIMPORT(& QUOT;のAdvapi32.dll& QUOT;のCharSet = System.Runtime.InteropServices.CharSet .Auto、
SetLastError =真)]パブリック
externを静的int型DuplicateToken(のIntPtr hToken、int型impersonationLevel、
のIntPtr hNewToken REF);
#endregion

図は、<遊び1.5を確立Br>
まず、advapi32.dllから新しいメソッドをインポートする必要があります。これには便利な定数も含まれています。 impersonationContextという名前の変数は、操作の前にWindowsユーザーを保持するために使用されます。

このように、我々はここで、プレイを確立し、それを使用する方法の例です:

(impersonateValidUser(this.LoginUsername、this.DomainName、
this.loginPassword))場合には{
//コードは、指定したユーザーのセキュリティコンテキストで実行
ここに挿入//undoImpersonation()
プレイをキャンセルすることを忘れないでください。
が} {他
//プレイ操作が失敗し、 }システムのセキュリティ・メカニズムが
確保に失敗した後に挿入

我々は単に有効なユーザー名とパスワードを使用してimpersonateValidUserメソッドを呼び出す必要が
図1.6の使用
を果たし、ユーザーが再生します。今後は、undoImpersonation()を呼び出した後にのみ、指定されたユーザー名ですべての操作を実行します。正しく動作するためにASP.NETで
操作を
プレーするために、我々はのmachine.configを変更する必要があります(C:\\ WINNT \\ microsoft.netフレームワークの\\ v%でのVERSION%\\ CONFIG \\ machine.configの\\)でusername属性をSystemに設定する必要があるprocessModelノード。で
まとめこの記事では、System.DirectoryServices名前空間を使用すると、完全な実行を完了することができ、必要なADのDALのいずれかのプロバイダの基本的な内容を議論しました。実際のアプリケーションでは、この例を変更して、これを私たちの要件に合わせることができます。実際に使用できるDALについては、通常のデータベースプロバイダを含め、1つのサービスプロバイダだけに限定するべきではないことを忘れないでください。 DALを交換できるはずです。

この記事を読んだ後、読者は不適切な感覚があると感じるかもしれません。読者は、グループの作成、編集、削除などのグループ管理機能を追加し、各ユーザーが属するグループと各グループ内のユーザーを表示することをお勧めします。ただし、これらはCOM相互運用機能を通じて完了する必要があります。関連情報をお読みください。

zh-CN"],null,[1],zh-TW"]]]
Copyright © Windowsの知識 All Rights Reserved