在asp.net应用程序中存储SMTP凭据的最佳做法是什么?

在asp.net应用程序中存储SMTP凭据的最佳做法是什么?,.net,asp.net,email,web-config,smtp,.net,Asp.net,Email,Web Config,Smtp,我在过去创建了几个发送电子邮件的asp.net应用程序,但我始终不确定在哪里存储SMTP凭据。我通常只创建一个单独的XML文件来存储这些信息,但我不确定这是否是最好的方法 存储asp.net应用程序的SMTP凭据时的最佳做法是什么 SMTP凭据是否应存储在web.config?标记中 如果我有我的druthers,我会存储在web.config中。我曾到过一些地方,在需要发送电子邮件时,我会随时打电话到数据库获取这些凭据。你应该问问自己:你的连接字符串存储在哪里 如果web.config对于您的

我在过去创建了几个发送电子邮件的asp.net应用程序,但我始终不确定在哪里存储SMTP凭据。我通常只创建一个单独的XML文件来存储这些信息,但我不确定这是否是最好的方法

存储asp.net应用程序的SMTP凭据时的最佳做法是什么

SMTP凭据是否应存储在web.config?标记中


如果我有我的druthers,我会存储在web.config中。我曾到过一些地方,在需要发送电子邮件时,我会随时打电话到数据库获取这些凭据。你应该问问自己:你的连接字符串存储在哪里

如果web.config对于您的DB凭据足够安全,我看不出有任何理由说明SMTP凭据应该不同


因此,我的选择是-无论您在哪里存储连接字符串,我都会建议您将SMTP服务器设置为仅NTLM身份验证,并作为服务器的授权用户运行web应用程序。然后,除了SMTP服务器的IP之外,不会存储任何凭据


显然,如果你在使用Gmail,这不是一个选项,在这种情况下,用加密的用户名和密码将它存储在你自己的单独部分。然而,你可能会争辩说,如果他们有权访问你的web配置,他们就更有可能访问你的源文件或可反编译的二进制文件。

我是在说显而易见的问题吗

<configuration>
    <system.net>
        <mailSettings>
            <smtp>
            </smtp>
        </mailSettings>
    </system.net>
<configuration>


不过,您可以加密连接字符串。我猜你不能对smtp Credshanks做同样的事情,因为他指出了@Joe!您可以用加密连接字符串的相同方式加密任何类型的信息。正如我之前所说的-两个凭据应该在相同的安全级别imho上。