【发布时间】:2017-01-16 15:24:35
【问题描述】:
我有一个使用 ELMAH 记录未处理异常的 Azure Web 应用程序。
当我第一次部署它时,web.config 中定义了完整的 SMTP 设置,并且 ELMAH 通过电子邮件发送了异常:
<system.net>
<mailSettings>
<smtp from="me@mydomain.com">
<network host="smtp.mailprovider.com"
port="123"
userName="myUserName"
password="p@ssw0rd" />
</stmp>
</mailSettings>
</system.net>
用户名和密码已从 web.config 中删除,现在存储为应用程序设置,通过 Azure 门户进行配置。
我发送的大多数电子邮件仍然可以正常工作,因为电子邮件代码可以访问这些应用程序设置并在实例化 SmtpClient 时使用它们,例如:
var userName = WebConfigurationManager.AppSettings["smtp.userName"];
var password = WebConfigurationManager.AppSettings["smtp.password"];
var credentials = new NetworkCredential(userName, password);
using (var smtpClient = new SmtpClient { Credentials = credentials })
{
await smtpClient.SendMailAsync(mailMessage);
}
让 ELMAH 使用存储在应用程序设置中的凭据的最佳方法是什么?
我可以看到的选项:
【问题讨论】: