2010-06-29 22 views
0

Comment pouvons-nous cacher (invisible) certaines lignes CodeBehind (par exemple une classe) d'autres développeurs dans un projet commun?Comment pouvons-nous cacher (invisible) des lignes CodeBehind (par exemple une classe) d'autres développeurs dans un projet commun?

J'ai posé cette question parce qu'aujourd'hui nous travaillions sur des codes de courriel et nous voulions envoyer un courriel à tous les courriels des programmeurs pour envoyer un courriel à notre site Web commun.

Comment pouvons-nous cacher nos mots de passe les uns aux autres?

Est-il possible de faire 3 classess (pour envoyer des emails à 3 développeurs web) et de cacher ou d'ignorer ces classes (class class ou codebehind lines) et ainsi chaque peogrammer ne peut voir que sa classe?

grâce à l'avance ///

le code email est comme:

protected void Button1_Click(object sender, EventArgs e) 
{ 

    //create mail message 
    MailMessage mail = new MailMessage(); 
    //set the address 
    mail.From = new MailAddress("[email protected]"); 
    mail.To.Add("[email protected]"); 
    //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("[email protected]", "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(); 
    } 

} 
+7

est-ce que vous codez les mots de passe en code? peut-être que c'est le vrai problème ici – Grzenio

Répondre

1

Je suggère de créer et d'utiliser un compte de service, pas votre compte personnel, pour envoyer des courriels à partir d'un site Web. Si possible, demandez aux administrateurs de votre système de messagerie d'exempter ce compte de service d'un mot de passe pour envoyer un e-mail. D'après mon expérience, les admins sont généralement assez bon pour faire des exceptions pour les comptes de service à moindre risque (parce qu'il n'est pas utilisé par un être humain pour une activité Internet normale).

+0

merci pour votre réponse // mais e-mail et c'est mot de passe dans un de nos problèmes et nous pouvons le résoudre par votre solution // j'ai fait ce fil à trouver un moyen de lignes de code invisible // est-il possible? – MoonLight

+0

@Lost - no. il n'est pas possible de cacher le code des autres développeurs.S'ils ont accès à l'exécutable, ils peuvent décompiler le code et avoir accès s'ils en ont besoin. Le mieux que vous pouvez faire est de stocker les informations d'identification dans un fichier .config qui ne fait pas partie de votre code source, alors tout le monde peut utiliser le leur. Vous ne voudriez certainement pas garder le code source hors de SCM. – tvanfosson

+0

merci pour vos réponses - il semble qu'il n'y a aucun moyen de cacher codebehind de l'autre (développeurs dans une équipe commune) merci beaucoup – MoonLight

1

Vous ne devriez pas être les mots de passe de codage dur dans les classes, vous devez mettre ce genre d'information dans un fichier de configuration. Vous pouvez crypter ou hacher le mot de passe pour plus de sécurité. Je ne sais pas non plus pourquoi vous auriez besoin d'un mot de passe pour envoyer un e-mail à quelqu'un.

vous pourriez faire quelque chose comme:

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

Vous pourriez le magasin l'e-mail et mot de passe dans le fichier web/app.config comme ci-dessous:

<appSettings> 
    <add key="Email" value="[email protected]" /> 
    <add key="EmailPassword" value="ThePassword" /> 
</appSettings> 

Tant que chaque delevloper avait leur propre fichier de configuration, ils pourraient garder leur mot de passe secret, mais avoir du code générique sortir le fichier de configuration.

+0

Bien que nous ne le fassions pas maintenant, nos serveurs de messagerie devraient bientôt être sécurisés, de sorte qu'un mot de passe est requis pour envoyer le courrier et récupérer le courrier de votre boîte aux lettres. Nous allons probablement assouplir cette exigence pour les comptes de services (sur lesquels nos sites Web seraient exécutés), mais pour les utilisateurs normaux, ce serait le cas. – tvanfosson

+0

salut - nous ne voulons pas envoyer nos mots de passe dans le corps de courrier électronique // il est nécessaire pour le serveur gmail (par exemple) == est cependant il possble à quelques lignes invisibles de CodeBehind? – MoonLight

+0

dans ce cas, nous ne pouvons pas hacher ces mots de passe ... – MoonLight