我試圖使用EWS訪問收件箱郵件。 Kerberos已配置。但是,當我在我的webpart中使用service.UseDefaultCredentials = true時,出現401錯誤(未授權)。什麼是解決這個問題的解決方案。Sharepoint 2013 EWS收件箱webpart錯誤401未經授權
private static bool ValidateCertificate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors policyErrors) {
return true;
}
protected void Page_Load(object sender, EventArgs e)
{
try
{
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateCertificate);
service.UseDefaultCredentials = true;
service.Url = new Uri(EWSuri.uri);
SearchFilter sf = new SearchFilter.SearchFilterCollection(LogicalOperator.And,
new SearchFilter.IsEqualTo(
EmailMessageSchema.IsRead, false), new SearchFilter.IsGreaterThan(ItemSchema.DateTimeReceived, DateTime.Now.AddDays(-14)));
FindItemsResults<Item> findResults = service.FindItems(
WellKnownFolderName.Inbox, sf,
new ItemView(int.MaxValue));
emailblock.InnerHtml = "<div data-itemscount=\"" + findResults.Items.Count + "\"></div>";
foreach (Item item in findResults.Items)
{
EmailMessage mes = (EmailMessage)item;
emailblock.InnerHtml += "<div class=\"emailitem\"><p class=\"emailline clearfix\"><span class=\"emailfield\">From:</span>" +
"<span class=\"emailtext\">" + " " + mes.Sender.Name + "</span></p>" +
"<p class=\"emailline clearfix\"><span class=\"emailfield\">Subject:</span>" +
"<span class=\"emailtext\">" + " " + item.Subject + "</span></p>" +
"<p class=\"emailline clearfix\"><span class=\"emailfield\">Received:</span>" +
"<span class=\"emailtext\">" + " " + item.DateTimeSent + "</span></p></div>";
}
}
catch (Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverRemoteException ex)
{
Console.WriteLine("Exception thrown:{0}" ,ex.Message);
}
}
我想爲我的SharePoint站點中的每個用戶使用默認憑據。如果我更改我的控制檯應用程序的代碼,一切都會正常工作。我不明白我該如何解決這個問題。 Kerberos已配置,但它爲什麼不起作用? – Dmitry