2010-04-08 20 views
1

folk SHIdes informations d'identification SMTP Stockage pour une application VB.Net

que je suis stocker des chaînes de connexion SQL dans web.conf ce qui est bien mais maintenant je besoin de stocker les informations d'identification SMTP quelque part protégées. web.conf semble être l'endroit le plus probable depuis sa protection mais comment peuvent-ils être stockés?

J'ai ajouté les détails à mon web.conf mais amnot sûr de savoir comment les référencer

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

Envoi du courrier:

 Dim mail As New MailMessage() 

     'set the addresses 
     mail.From = New MailAddress("[email protected]") 
     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) 

- Jonesy

Répondre

4

Vous pouvez prendre quelques approches. Chacun a ses mérites.

  • Si vous souhaitez que les informations d'identification du serveur soient configurables, vous devez les stocker dans une table de base de données.
  • Si vous pensez qu'ils seront assez statiques, mais que vous ne voulez pas avoir à recompiler du code pour les modifier, utilisez web.config (ou app.config le cas échéant).
  • Vous pouvez également rechercher dans le registre si vous voulez qu'ils soient configurables de serveur à serveur.

Dans le cas où vous demandiez spécifiquement comment stocker les informations d'identification SMTP dans un fichier web.config, vous pouvez faire quelque chose comme ceci:

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

Si vous avez besoin d'aide pour les valeurs de appsettings, check out this article.

+0

merci pour la réponse Byron! Je veux aller avec votre deuxième point de balle, mais je ne suis pas sûr de savoir comment le faire. J'ai trouvé un exemple qui va stocker les détails dans web.conf mais comment puis-je me référer à ceux-ci dans le code derrière? J'ai mis à jour mon message avec le code web.conf. – iamjonesy

+1

L'exemple de Byron vous donne la réponse: les stocker dans les touches appSettings est plus facile. Pour récupérer la valeur d'une clé, utilisez 'ConfigurationManager.AppSettings (" [clé] ")' – tloflin

+0

oubliez mon dernier commentaire, la réponse est que vous n'avez pas besoin de se référer aux paramètres smtp dans web.conf ils sont utilisés automatiquement. @tloflin - Je vais essayer appSettings aussi merci! – iamjonesy