【发布时间】:2012-08-30 07:54:52
【问题描述】:
我在我们的 ISP 托管我的 ASP.NET 站点。每当我想从我的站点发送电子邮件时,都会收到以下错误:
System.Security.SecurityException:请求 System.Configuration.ConfigurationPermission、System.Configuration、Version=2.0.0.0、Culture=neutral、PublicKeyToken=b03f5f7f11d50a3a' 类型的权限失败。"
我也收到以下错误,这是我试图解决的原始错误:
在尝试访问配置部分 system.net/mailSettings/smtp 时请求 ConfigurationPermission 失败。要允许所有调用者访问此节的数据,请在声明此节的配置文件中将节属性“requirePermission”设置为“false”。
我尝试添加配置部分并设置requirePermission="false",但它不起作用。也许类型是错误的?在本地一切正常。从我的web.config 获得读取我的 SMTP 详细信息的权限的任何帮助都会很棒。
<configSections>
<sectionGroup name="mailSettings">
<section name="smtp" type="System.Net.Configuration.SmtpSection" requirePermission="false"/>
</sectionGroup>
</configSections>
<system.net>
<mailSettings>
<smtp from="...">
<network host="..." defaultCredentials="false" userName="..." password="..." />
</smtp>
</mailSettings>
</system.net>
【问题讨论】:
-
它可以在您的本地机器上运行吗?那么您的托管公司可能有一个自定义信任级别,它不允许设置 mailSettings。你最好联系他们来解决这个问题。
-
是的,在本地完美运行。我也怀疑,没有办法绕过这个安全问题吗?例如设置一个部分并设置 requirePermission = false?如果是这样,关于我实施它的方式是否正确的任何建议?怀疑我能否要求托管公司更改信任级别 :( 谢谢
-
看起来你正确地实现了它,主要是因为它在本地工作。我不认为您可以绕过它,否则他们不会将其称为安全性;)我也怀疑是否会更改信任级别,但有时他们有另一种方法可以使其正常工作。联系他们似乎是最好的选择。祝你好运!顺便说一句,有时可以从托管公司接收信任配置,因此您可以在本地正确测试它。
-
好的,非常感谢,我会联系他们,或许他们可以给我一个解决方案。
标签: asp.net web-config smtpclient