我试图使用GetUserPhoto REST请求记录在这里得到用户的照片流出的Microsoft Exchange:https://msdn.microsoft.com/en-us/library/office/jj190905%28v=exchg.150%29.aspx?f=255&MSPPError=-2147217396C#的WebRequest一个URL被配置为使用Windows身份验证
我的问题是,无论我做什么的连接被关闭自动并且无法使用NTLM进行身份验证。微软甚至提供了代码,但是当您在IIS Web应用程序中运行此代码时,即使它正在使用作为域用户运行的应用程序池,它也永远无法进行身份验证。
这是不工作我当前的代码:
request = System.Net.WebRequest.Create($"https://{Settings.ExchangeServer}/ews/exchange.asmx/s/GetUserPhoto?email={primarySmtpAddress}&size=HR240x240") as System.Net.HttpWebRequest;
request.ServerCertificateValidationCallback = delegate { return true; };
request.UseDefaultCredentials = true;
resp = request.GetResponse() as System.Net.HttpWebResponse;
现在我可以把这个在控制台应用程序并运行它,然后它的作品。但在IIS中它根本就不起作用。我甚至尝试过没有运气的RestSharp。
我看到的事情是仍在使用ASP.NET模拟和Windows身份验证,它将模拟用户登录到应用程序。 我更想使用运行该应用程序的凭据(应用程序池上的凭据)向Exchange EWS URL发出请求。 – Jacob
但是,当使用应用程序池证书并且应该使用相同的解决方案时,这将是相同的委派问题。 –
啊,所以我可以保持匿名身份验证,因为我使用窗体身份验证,但启用Windows身份验证和模拟可能允许凭据通过?我会试试 – Jacob