首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在中等信任环境中从Web.config读取system.net/mailSettings/smtp

在中等信任环境中从Web.config读取system.net/mailSettings/smtp
EN

Stack Overflow用户
提问于 2011-01-05 00:16:04
回答 5查看 26.4K关注 0票数 22

我有一些继承的代码,这些代码存储Web.config的Web.config部分中的SMTP服务器、用户名、密码。

它以前是这样读的:

代码语言:javascript
复制
Configuration c = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);
MailSettingsSectionGroup settings = (MailSettingsSectionGroup)c.GetSectionGroup("system.net/mailSettings");
return settings.Smtp.Network.Host;

但当我不得不部署到中等信任环境时,这是失败的。

因此,按照this question的回答,我重写了它以使用GetSection(),如下所示:

代码语言:javascript
复制
SmtpSection settings = (SmtpSection)ConfigurationManager.GetSection("system.net/mailSettings/smtp");
return settings.Network.Host;

但它仍然给了我一个中等信任的SecurityException,并提供了以下信息:

试图访问配置部分“system.net/mailSettings/smtp”时,

ConfigurationPermission请求失败。要允许所有调用方访问本节的数据,请在声明此节的配置文件中设置节属性'requirePermission‘等于'false’。

因此,我尝试了这个requirePermission属性,但是不知道将它放在哪里。

如果我将它应用于节点,就会得到一个ConfigurationError:“未识别的属性'requirePermission‘。注意,属性名是区分大小写的。”

如果将其应用于节点,则仍然会得到SecurityException。

是否有任何方法可以在中等信任下以编程方式访问此配置部分?或者我应该放弃它,把设置移到

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-01-05 02:46:46

requirePemission属性用于<configSections>分组,该分组与您遇到安全问题的web.config的部分匹配。

此外,您不必实际使用代码读取设置来发送邮件--您只需使用空白的SmtpClient:

代码语言:javascript
复制
 new SmtpClient.Send(MyMailMessage);

默认情况下,它将使用来自配置部分的设置发送。

票数 27
EN

Stack Overflow用户

发布于 2012-12-13 18:33:30

您可以像一些人建议的那样创建一个SmtpClient,但这有点过了--直接阅读这些章节就可以了。

代码语言:javascript
复制
var section = ConfigurationManager.GetSection("system.net/mailSettings/smtp") as SmtpSection;
var host=section.Network.Host
票数 26
EN

Stack Overflow用户

发布于 2012-08-14 03:04:50

这对我来说很好。

代码语言:javascript
复制
var smtp = new System.Net.Mail.SmtpClient();
var host = smtp.Host;
var ssl = smtp.EnableSsl;
var port = smtp.Port;

var credential = new System.Net.Configuration.SmtpSection().Network;
var username = credential.UserName;
var password = credential.Password;
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4599779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档