【问题标题】:Storing SMTP credentials for a VB.Net application为 VB.Net 应用程序存储 SMTP 凭据
【发布时间】:2010-04-08 23:24:42
【问题描述】:

大家好,

我一直在 web.conf 中存储 SQL 连接字符串,这很好,但现在我需要将 SMTP 凭据存储在受保护的地方。 web.conf 似乎是自受保护以来最有可能的地方,但如何存储它们?

我已将详细信息添加到我的 web.conf,但不知道如何引用它们

<system.net>
   <mailSettings>
   <smtp>
    <network 
      host ="server"
      userName ="username"
      password ="password"
      defaultCredentials =" false"
      port =" 25"
    />
  </smtp>
  </mailSettings>
</system.net>

发送邮件:

      Dim mail As New MailMessage()

        'set the addresses
        mail.From = New MailAddress("billy.jones@networkroi.co.uk")
        mail.To.Add(ToAddress)

        'set the content
        mail.Subject = "User Request Submitted via Client Portal"
        mail.Body = "text in here"
        mail.IsBodyHtml = True

        ' authenticatin
        Dim basicAuthenticationInfo As New System.Net.NetworkCredential("username", "-password-")


        'send the message
        Dim smtp As New SmtpClient("servername")
        smtp.UseDefaultCredentials = False
        smtp.Credentials = basicAuthenticationInfo

        smtp.Send(mail)

--琼斯

【问题讨论】:

    标签: vb.net smtp web-config security credentials


    【解决方案1】:

    您可以采取几种方法。各有千秋。

    • 如果您希望服务器凭据是可配置的,您应该将它们存储在数据库表中。
    • 如果您认为它们将是相当静态的,但又不想重新编译代码来更改它们,请使用 web.config(或 app.config,如果适用)。
    • 如果您希望注册表可在服务器之间进行配置,您也可以查看注册表。

    如果您特别询问如何在 web.config 文件中存储 SMTP 凭据,您可以执行以下操作:

    <configuration>
       <appSettings>
          <add key="SMTP_Server" value="my.smtpserver.com" />
          <add key="SMTP_Username" value="myusername" />
          <add key="SMTP_Password" value="mypassword" />
       </appSettings>
    </configuration>
    

    如果您需要帮助从 appSettings 中获取值,check out this article

    【讨论】:

    • 感谢拜伦的回复!我想使用您的第二个要点,但不知道该怎么做。我找到了一个将详细信息存储在 web.conf 中的示例,但是我如何在后面的代码中引用这些信息?我已经用 web.conf 代码更新了我的帖子。
    • Byron 的示例为您提供了答案:将它们存储在 appSettings 键中是最简单的。要检索键的值,请使用 ConfigurationManager.AppSettings("[key]")
    • 忘记我的最后评论,答案是您不需要参考 web.conf 中的 smtp 设置,它们会自动使用。 @tloflin - 我也要试试 appSettings,谢谢!
    • @Jonesy:有趣的是,我不知道 SmtpClient 会自动从配置文件中检索设置。那么,在这种特定情况下,这会更好。对于一般用途,appSettings 很好。
    • @tloflin 是的,我知道确实很方便,Dim smtp As New SmtpClient() _ smtp.Send(mail) 足以获取 smtp 设置:)
    猜你喜欢
    • 2017-07-22
    • 1970-01-01
    • 2011-08-22
    • 2019-09-03
    • 2014-06-26
    • 1970-01-01
    • 2017-01-16
    • 2019-02-17
    • 2018-01-22
    相关资源
    最近更新 更多