0

我们如何在一个公共项目中对其他开发人员隐藏(不可见)一些 CodeBehind 行(例如一个类)?

我问这个问题是因为今天我们正在研究电子邮件代码,我们想向所有程序员的电子邮件发送一封电子邮件,然后向我们的常用网站电子邮件发送一封电子邮件。

我们如何隐藏彼此的密码?

是否可以创建 3 个类(用于向 3 个 Web 开发人员发送电子邮件)并隐藏或不可见这些类(类文件或代码隐藏行),因此每个 peogrammer 只能看到他的类?

提前致谢///

电子邮件代码如下:

protected void Button1_Click(object sender, EventArgs e)
{

    //create mail message
    MailMessage mail = new MailMessage();
    //set the address
    mail.From = new MailAddress("Kazemipour@gmail.com");
    mail.To.Add("aaak@yahoo.com");
    //set the content
    mail.Subject = "Project email";
    mail.Body = "Hello World!";

    //send the message
    SmtpClient smtp = new SmtpClient();
    smtp.UseDefaultCredentials = false;
    smtp.Credentials = new System‎‎.Net‎‎.NetworkCredential("aaa@gmail.com", "pass");
    smtp.Host = "smtp.gmail.com";
    smtp.Port = 587;             
    smtp.EnableSsl = true;





    try
    {

        smtp.Send(mail);
        Button1.Text = "sent";
    }
    catch (System‎‎.Net.Mail.SmtpException exp)
    {
        Label1.Text = exp.ToString();
    }

}
4

2 回答 2

1

您不应该将密码硬编码到类中,您应该将此类信息放在配置文件中。您可以加密或散列密码以获得额外的安全性。我也不确定为什么您需要密码才能向某人发送电子邮件。

您可以执行以下操作:

string strEmail = System.Configuration.ConfigurationManager.AppSettings["Email"];
string strPassword = System.Configuration.ConfigurationManager.AppSettings["EmailPassword"];
smtp.Credentials = new System‎‎.Net‎‎.NetworkCredential(strEmail,strPassword )

您可以将电子邮件和密码存储在 web/app.config 文件中,如下所示:

<appSettings>
  <add key="Email" value="arse@feck.com" />
  <add key="EmailPassword" value="ThePassword" />
</appSettings>

只要每个开发人员都有自己的配置文件,他们就可以保密他们的密码,但有通用代码提取配置文件。

于 2010-06-29T11:57:33.800 回答
1

我建议创建和使用服务帐户,而不是您的个人帐户,用于从网站发送电子邮件。如果可能,请让您的邮件系统管理员免除此服务帐户发送电子邮件所需的密码。根据我的经验,管理员通常非常擅长为低风险服务帐户设置例外(因为任何人都不会将其用于正常的互联网活动)。

于 2010-06-29T12:10:06.203 回答