La lecture system.net/mailSettings/smtp à partir du Web.config en niveau de confiance Moyen de l'environnement

J'ai quelques hérité de code qui stocke serveur SMTP, le nom d'utilisateur, mot de passe dans la system.net/mailSettings/smtp section du site Web.config.

Il utilisé pour lire comme suit:

Configuration c = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);
MailSettingsSectionGroup settings = (MailSettingsSectionGroup)c.GetSectionGroup("system.net/mailSettings");
return settings.Smtp.Network.Host;

Mais ce n'était pas quand j'ai eu à déployer à un niveau de confiance moyen de l'environnement.

Faire à la suite de la réponse de cette question, je l'ai réécrit pour utiliser GetSection() comme suit:

SmtpSection settings = (SmtpSection)ConfigurationManager.GetSection("system.net/mailSettings/smtp");
return settings.Network.Host;

Mais c'est encore de me donner une SecurityException sur un niveau de confiance Moyen, avec le message suivant:

Demande de ConfigurationPermission
échec lors de la tentative d'accès à
section de configuration
'system.net/mailSettings/smtp'. Pour
permettre à tous les appelants pour accéder aux données
pour cette section, la section jeu
l'attribut 'requirePermission' égalité
"false" dans le fichier de configuration
d'où cette section est déclarée.

J'ai donc essayé cette requirePermission attribut, mais ne peut pas trouver où le mettre.

Si je l'applique à la <smtp> nœud, je reçois un ConfigurationError: "non reconnu attribut "requirePermission'. Notez que les noms d'attributs sont sensibles à la casse."

Si je l'applique à la <mailSettings> nœud, j'ai toujours l'SecurityException.

Est-il possible de l'obtenir à cette section de configuration par programmation sous un niveau de confiance moyen? Ou devrais-je abandonner et de passer à la mise en <appSettings>?

  • Chaque fois que j'ai eu cette configuration je n'ai pas besoin de "lire". Simplement créer une nouvelle SmtpClient() serait d'utiliser les paramètres sur le web.config.
InformationsquelleAutor Carson63000 | 2011-01-05