Email 使用intranet的用户凭据和windows身份验证从网站进行EWS

Email 使用intranet的用户凭据和windows身份验证从网站进行EWS,email,authentication,exchangewebservices,intranet,integrated,Email,Authentication,Exchangewebservices,Intranet,Integrated,我正在尝试了解如何配置需要通过用户凭据并获取邮件的网站(ASP.Net) 根据应用程序池的配置,我会收到不同类型的错误, 完整的方法是什么?我的意思是代码+配置;o) 我不想写用户和密码,但要让他们通过windows身份验证 谢谢 代码: Service=新的ExchangeService(ExchangeVersion.Exchange2010_SP2) { 网址= 新Uri( "https://xxx/yyy.asmx"), //UseDefaultCredentials=true没有帮助

我正在尝试了解如何配置需要通过用户凭据并获取邮件的网站(ASP.Net)

根据应用程序池的配置,我会收到不同类型的错误, 完整的方法是什么?我的意思是代码+配置;o)

我不想写用户和密码,但要让他们通过windows身份验证

谢谢

代码:

Service=新的ExchangeService(ExchangeVersion.Exchange2010_SP2)
{
网址=
新Uri(
"https://xxx/yyy.asmx"),
//UseDefaultCredentials=true没有帮助
};
var视图=新项目视图(1820);
//在收件箱中查找包含附件的第一封电子邮件。这一结果
FindItemsResults=Service.FindItems(folderName,视图);
//这里我得到了错误401
看一看,它涵盖了让你振作起来的基础知识。请注意,当您使用UseDefaultCredentials时,您必须在加入域的计算机上,并且用户已登录,并且您的目标必须是prem服务器上的。我们测试了该场景,下面的代码在该场景中工作

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));
        }
    }
}
使用系统;
使用Microsoft.Exchange.WebServices.Data;
名称空间HelloWorld
{
班级计划
{
静态void Main()
{
ExchangeService服务=新的ExchangeService(ExchangeVersion.Exchange2010_SP2);
service.UseDefaultCredentials=true;
service.TraceEnabled=true;
service.TraceFlags=TraceFlags.All;
//将下面的URL替换为您自己的URL,但建议改用自动发现
service.Url=新的Uri(“https://computer.domain.contoso.com/EWS/Exchange.asmx");
FindItemsResults=service.FindItems(WellKnownFolderName.Inbox,
新项目视图(1));
}
}
}

如果这对您不起作用,那么您可能希望尝试使用模拟。我想他们也有类似的情况。有关模拟的更多信息,请访问MSDN:。

谢谢您的回答,但仍然不清楚,我的场景非常简单,可能是一个双重问题。IIS应用程序从经过身份验证的Windows integrated AD用户获取请求,因此它可以识别用户凭据。我仍然不知道如何将它们隐式地传递给EWS。。。客户端已登录,但FindItemsResults失败,出现401和类似错误感谢提到UseDefaultCredentials仅适用于本地Exchange服务器。(我不记得在微软的文档中看到过这一点)
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));
        }
    }
}