我在寫一個需要發送SMTP電子郵件的C#類。我發現代碼在這太問題這給了我什麼,我需要發送電子郵件(SO Question)如何安全存儲和設置SmtpClient類使用的密碼?
爲方便起見,這裏是我從一個answer修改對上述問題的代碼:
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#源文件中。問題一是這個代碼將被簽入團隊基礎服務,所以整個團隊都必須/瞭解憑證。問題二是混淆是可能的,但它不能解決問題1.
最接近我找到的解決方案是應用程序配置的加密作爲安裝步驟。這並沒有解決問題1,但如果需要的話可以完成。
這種情況是否出現在生產應用程序中,以及哪些最佳實踐用於存儲實例化C#類所需的密碼?