在分析一个程序时,我看到了一个名叫AutoDiscoverURL的函数!! 我已经在谷歌上搜索过了,但不幸的是还没有弄明白。
在分析一个程序时,我看到了一个名叫AutoDiscoverURL的函数!! 我已经在谷歌上搜索过了,但不幸的是还没有弄明白。
Autodiscover属性将使用传递的电子邮件地址来确定服务URL。如果自动发现重定向,则自动发现将失败。
您可以使用它来查找端点,如果您不知道它在哪里。
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
service.Url //Null
service.AutodiscoverUrl("Dean.Meehan@company.ie", (discoverURL) => true);
service.Url //https://exchange.example.com/ews/exchange.asmx
注意:我使用lambda表达式 (discoverURL) => true
始终接受URL,如果您收到不受信任的电子邮件,则可能需要在运行发现之前验证返回的URL。
MSDN直接给出了答案:
通过调用Autodiscover服务,将Url属性初始化为指定电子邮件地址的Exchange Web Services(EWS)端点。
备注:
如果Autodiscover服务器返回重定向HTTP状态代码,则此方法将生成一个AutodiscoverLocalException,其中Message属性设置为字符串,例如“Autodiscover阻止了对https://autodiscover.contoso.com/autodiscover/autodiscover.xml的潜在不安全重定向。要允许Autodiscover跟随重定向,请使用AutodiscoverUrl(string, AutodiscoverRedirectionUrlValidationCallback)重载。”无论重定向响应中返回的URL的有效性如何,都会生成此异常。