【问题标题】:ASP.NET web.config SMTP security exception when sending e-mail from web site从网站发送电子邮件时 ASP.NET web.config SMTP 安全异常
【发布时间】: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


【解决方案1】:

要查看 system.net 配置部分的工作示例,请在您的计算机上为您的目标版本打开 machine.config。在 ASP .net 4.0 中,这就是它在我的 machine.config 中的样子

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 2011-09-09
    • 2019-01-23
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    • 2012-07-09
    相关资源
    最近更新 更多