2016-04-13 14 views
2

電子メールを送信せずにEWS Managed APIを使用しているユーザーが提供するログイン資格情報を検証する方法はありますか。私は[ExchangeService]オブジェクトでAutodiscoverUrlメソッドを使用していますが、時間がかかりすぎますか?どんな提案もありがたいです。EWSマネージドAPIを使用してログイン資格情報を検証する

 try 
     { 
      ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1); 
      service.Credentials = new WebCredentials("[email protected]", "password"); 
      service.AutodiscoverUrl("[email protected]", RedirectionUrlValidationCallback);  

      Console.WriteLine("Credentials validated successfully"); 
      Console.ReadLine(); 

     } 

     catch(Exception e) 
     { 
      Console.WriteLine(e.Message); 
      Console.ReadLine(); 
     } 

答えて

4

これを高速化するには1つの方法はいいですが機能しません。サービスURLを自分で設定することです。 まずデバッグモードでautodiscoverurl方法を実行して交換サービスのURLを取得:

service.Url = new Uri("https://yourExchangeURL.com/EWS/Exchange.asmx"); 
:次に

enter image description here

の代わりのサービスにautodiscoverurlメソッドを実行している、あなたはautodiscoverurlメソッドから得たURLを追加

ユーザーの資格情報を確認するためにautodiscoverを呼び出す代わりに、メールアカウント(Check exchange credentials remotely and check user logged in)の要求を行うことができます。

var findFolderResults = service.FindFolders(WellKnownFolderName.Root, new SearchFilter.IsGreaterThan(FolderSchema.TotalCount, 0), new FolderView(10)); 

あなたの最終的なコードは、この

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1); 
service.Credentials = new WebCredentials("[email protected]", "password"); 
service.Url = new Uri("https://yourExchangeURL.com/EWS/Exchange.asmx"); 
var findFolderResults = service.FindFolders(WellKnownFolderName.Root, new SearchFilter.IsGreaterThan(FolderSchema.TotalCount, 0), new FolderView(10)); 
+0

こんにちはマーカス、感謝のようになります。私が実際にやろうとしているのは、AutodiscoverUrlを使用してユーザーの資格情報が正しいことを検証し、そのメソッドが例外をトリガーして、それを知ることができます。私がその方法を使用しないと、私はその資格情報を検証できません。私はそれが遅いのでAutodiscoverUrlを使用せずにそれを行う方法を探しています。 –

+0

私の答えを編集して、資格証明を更新しました@ D.B –

+0

ありがとうマーカス。それは大きな助けとなりました。 –

関連する問題