Ich habe einige geerbten Code, der SMTP-Server, Benutzername, Kennwort in der system.net/mailSettings/smtp
Abschnitt der Web.config speichert.Lesen von system.net/mailSettings/smtp von Web.config in Medium Trust-Umgebung
Es verwendet sie wie so zu lesen:
Configuration c = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);
MailSettingsSectionGroup settings = (MailSettingsSectionGroup)c.GetSectionGroup("system.net/mailSettings");
return settings.Smtp.Network.Host;
Das war aber versagt, wenn ich auf ein Medium, das Vertrauen Umgebung bereitstellen musste.
nach der Antwort Also von this question, schrieb ich es GetSection()
wie so zu verwenden:
SmtpSection settings = (SmtpSection)ConfigurationManager.GetSection("system.net/mailSettings/smtp");
return settings.Network.Host;
Aber es ist immer noch mir auf Mittel Vertrauen eine Security geben, mit der folgenden Meldung:
Request for ConfigurationPermission failed while attempting to access configuration section 'system.net/mailSettings/smtp'. To allow all callers to access the data for this section, set section attribute 'requirePermission' equal 'false' in the configuration file where this section is declared.
Also habe ich dieses requirePermission
Attribut versucht, kann aber nicht herausfinden, wo ich es hinstellen soll.
Wenn ich es auf den Knoten <SMTP> anwenden, bekomme ich eine ConfigurationError: "Unbekanntes Attribut 'requirePermission'. Beachten Sie, dass Attributnamen Groß-und Kleinschreibung beachten."
Wenn ich es auf den <mailSettings> Knoten anwenden, bekomme ich immer noch die SecurityException.
Gibt es eine Möglichkeit, in diesem Config-Abschnitt programmatisch unter mittlerer Vertrauenswürdigkeit zu erhalten? Oder sollte ich einfach aufgeben und die Einstellung in <appSettings> verschieben?
Immer, wenn ich hatte, dass ich Einstellung nicht brauchen, "es lesen". Wenn Sie einfach einen neuen SmtpClient() erstellen, würden Sie die Einstellungen in der Datei web.config verwenden. – turtlepick