3

ユーザー資格情報を渡してメールを取得する必要がある Web サイト (ASP.Net) を構成する方法を理解しようとしています。

アプリケーション プールの構成に応じて、さまざまな種類のエラーが発生します。完全な方法は何ですか? つまり、コード + 構成 ;o)

ユーザーとパスワードを書きたくないが、Windows認証を介して取得したい

ありがとう

コード:

Service = new ExchangeService(ExchangeVersion.Exchange2010_SP2)
            {
                Url =
                    new Uri(
                    "https://xxx/yyy.asmx"),
                //UseDefaultCredentials = true doesnt help
            };
        var view = new ItemView(1820);

        // Find the first email message in the Inbox that has attachments. This results
        FindItemsResults<Item> results = Service.FindItems(folderName, view); 
        //Here I get the error 401
4

1 に答える 1

4

「 EWS マネージ API クライアント アプリケーションの使用を開始する」を参照してください。ここでは、作業を開始するための基本について説明しています。UseDefaultCredentials を使用する場合は、ユーザーがログインしているドメインに参加しているマシン上にいる必要があり、オンプレミス サーバーをターゲットにしている必要があることに注意してください。そのシナリオをテストしたところ、次のコードがそのシナリオで機能します。

using System;
using Microsoft.Exchange.WebServices.Data;

namespace HelloWorld
{
    class Program
    {
        static void Main()
        {
            ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
            service.UseDefaultCredentials = true;
            service.TraceEnabled = true;
            service.TraceFlags = TraceFlags.All;
            //Replace the URL below with your own, but using AutoDiscover is recommended instead
            service.Url = new Uri("https://computer.domain.contoso.com/EWS/Exchange.asmx");

            FindItemsResults<Item> results = service.FindItems(WellKnownFolderName.Inbox,
                                                               new ItemView(1));
        }
    }
}

それがうまくいかない場合は、偽装を使用してみてください。このスレッドを参照してください。彼らも同様の状況にあると思います。偽装の詳細については、MSDN: Impersonation and EWS in Exchange を参照してください。

于 2014-07-10T20:09:33.767 に答える