2012-02-21 3 views
-3

電子メールIDを入力として取得し、Active Directoryを検索してそのユーザーが存在し、フラグを返す.NET Webサービスを作成する方法。私はADを照会するために使用されるユーザーIDとパスワードを持っています。これを行う方法とそれ以外に何が必要なのかを記述してください。電子メールIDを入力として使用してActive Directoryを検索する.NET Webサービス?

+0

のC#、VB.NETの?どちらの場合も、クイックグーグルのもう一端にはサンプルコードが豊富にあります。何らかの理由ですでに機能していないコードが既に用意されていますか?そうでない場合は、まずDirectoryServicesを調べることをお勧めします。 –

+1

従来の技術である「ASP.NET Webサービス」は使用しないでください。新しい開発にはWCFを使用します。 –

答えて

1

WCFを使用すると、これを簡単に実行できます。

ステップ1 - これは、彼らが必要な場合がありますパラメータを含むあなたが望むあなたの業務を、定義するサービス契約

を定義します。あなたが必要な場合があります正確に何を知らない、私はちょうど推測し、このような何かを思い付いた:

using System.ServiceModel; 

namespace SearchAD 
{ 
    [ServiceContract] 
    public interface ISearchADService 
    { 
     [OperationContract] 
     bool EMailAddressExists(string emailAddress); 
    } 
} 

ステップ2 - サービスクラスを実装

これは(骨に「肉」を追加することを意味しますあなたは(自分のドメイン名、ユーザー名とパスワードを取得する必要があります - もちろん

using System; 
using System.DirectoryServices.AccountManagement; 

namespace SearchAD 
{ 
    public class SearchADService : ISearchADService 
    { 
     public bool EMailAddressExists(string emailAddress) 
     { 
      // establish the Active Directory domain context to search in 
      PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "YOURDOMAIN", userName, password); 

      // define your "query-by-example" user to search for  
      UserPrincipal qbeUser = new UserPrincipal(ctx); 
      qbeUser.EmailAddress = emailAddress; 

      // instantiate the searcher to find that user  
      PrincipalSearcher findUserByMail = new PrincipalSearcher(qbeUser); 

      // search for the user - did we find one?  
      UserPrincipal userByEmail = findUserByMail.FindOne() as UserPrincipal; 

      return userByEmail != null; 
     } 
    } 
} 

、このセットアップで: - サービス契約は)あなたが実際にあなたが何をしようとして行う場所ですActive Directoryへの問い合わせ用)どこか - 設定ファイル、あなたのサービスクラスの定数 - 何でもあなたのために働きます!

これで、電子メールアドレスを取得し、Active Directoryでその電子メールアドレスに一致するユーザーアカウントを検索するWCFサービスが基本的にあります。見つかった場合はtrueが返されます。それ以外の場合はfalseとなります。

今、あなたのWCFサービスで、あなたが今だけ(IISまたは自己ホスティングで)それをホストする方法、およびそれがサービスを利用するためのクライアントを作成する方法を知っておく必要があります - しかし、それはただのです非常に基本的なWCF know-既にノウハウを持っていない場合は、必要な情報やチュートリアルを見つけるのに苦労しないでください!

Active Directoryの検索に使用されるメカニズムは、.NET 3.5以降の一部であるSystem.DirectoryServices.AccountManagement名前空間です。ここではそれについてのすべてを読む:

+0

ありがとうございます。これは絶対にうまくいく。ところで、私はSOAP UIツールを使ってWebサービスをテストすることができませんでした。次に、設定ファイルのbasichttpbindingへのデフォルトバインディングを変更しました。 SOAP UIツールがそれを検出し、正常にテストすることができました。 WebServiceStudioと同じ状況でした。 – user536652

関連する問題