Я пишу класс С#, которому нужно отправлять электронные письма SMTP. Я нашел код в этом вопросе SO, который дал мне то, что мне нужно для отправки электронной почты (SO Question )а>
Для удобства вот код, который я изменяю из ответа на вопрос выше:
using System.Net;
using System.Net.Mail;
var fromAddress = new MailAddress("[email protected]", "From Name");
var toAddress = new MailAddress("[email protected]", "To Name");
const string fromPassword = "fromPassword";
const string subject = "Subject";
const string body = "Body";
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
{
smtp.Send(message);
}
У меня проблема в том, что код в этом вопросе требует, чтобы пароль smtp хранился в исходном файле C# в виде обычного текста. Первая проблема заключается в том, что этот код будет зарегистрирован в службе Team Foundation, поэтому вся команда должна будет узнать учетные данные. Вторая проблема заключается в том, что запутывание возможно, но не устраняет проблему 1.
Самое близкое к решению, которое я нашел, — это шифрование конфигурации приложения в качестве шага установки. Это не решает проблему 1, но при необходимости может быть сделано.
Возникает ли такая ситуация в производственных приложениях и какие передовые методы используются для хранения паролей, необходимых для создания экземпляров классов C#?