19

当我们尝试打开我们的管理员登录页面时,我们遇到了以下安全异常问题。

 Security Exception
 Description: The application attempted to perform an operation not allowed by the security policy.
To grant this application the required 
permission please contact your system administrator or change the   application's trust level in the configuration file. 


 Exception Details: System.Security.SecurityException: Request failed.

首先,我们使用会员身份进行用户身份验证操作,我们有两个单独的应用程序,一个用于管理员,一个用于用户,每个应用程序都有自己的 Web.Config 文件。

用户数据在 wwwroot 中上传,但管理员数据在 wwwroot/admin 和 admin webconfig 中上传,我们将 Login.aspx 定义为 admin 的默认页面(当用户输入 mysite.com/admin 时),我们为 admin 创建了一个虚拟目录(因为我们有两个名为 /admin 的 Web.Config 文件,路径为 mysite.com/wwwroot/admin

有趣的是,我们在其他一些项目中使用相同的方法(具有相同的成员资格和 web.config 以及相同的主机)但它们运行良好,并且在我们的某些项目中不时出现提到的问题(并非总是发生)事件,尽管所有设置和基础设施(对于所有项目)都是相同的。

我们还有一些 web 服务的 app_Webreference 文件夹,这可能是问题的原因,但我不确定。我们试图更改安全信任级别,但主机不允许我们这样做,如果它来自主机所以为什么我们的其他一些网站没有这个问题所以目前我不知道似乎是什么问题,但它确实有问题请帮助我

多谢

4

3 回答 3

18

我也提供了帮助,只是在web.config中添加了几行,以允许我的 Web 应用程序具有完全信任级别

<system.web>
   <trust level="Full" />
</system.web>
于 2016-12-19T06:27:18.753 回答
11

我在 MSDN 上找到了这篇我认为相关的文章(异常细节似乎相同)。它说它适用于 ASP.NET 1.0 和 1.1,但它也是从 2005 年 10 月开始的,因此很可能没有更新以明确说明您使用的任何版本(大概 >= 4.0):

修复:如何解决安全异常 (ASP.NET)? ”,作者Anand Narayanaswamy MVP


症状

说明:应用程序试图执行安全策略不允许的操作。要授予此应用程序所需的权限,请联系您的系统管理员或在配置文件中更改应用程序的信任级别。

例外:

System.Security.SecurityException: Request Failed

原因: 出现上述错误是因为域没有放在 IIS 上它自己的应用程序池下,而且服务器上的 machine.config 文件中缺乏适当的信任级别。

解析度

  1. 使用 Internet 信息服务 (IIS) 为相应的域创建应用程序池。登录到远程桌面并打开 IIS 管理器。展开树应用程序池。右键单击并选择新建 | 应用程序池并提供所需的详细信息。

  2. 下一步是将域放在新创建的应用程序池下。要执行此操作,请展开标记为网站的树,然后在其下展开默认网站。选择您的域名,右键单击它并选择属性菜单项。选择标有应用程序池的下拉框,然后选择新创建的应用程序池名称。

    注意:如果您在服务器上安装了某些流行的主机控制面板,您可以使用它们自动执行上述步骤。

  3. 将以下代码行添加到 machine.config 文件中。该文件可以位于文件夹下 - 根驱动器名称:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG

    <location path="yourdomain.com" allowOverride="true">
        <system.web>
            <trust level="Full" originUrl=""/>
        </system.web>
    </location>
    

(A) 您应该需要服务器的管理权限和远程桌面的访问权限才能解决上述问题。如果您无权访问服务器,则应联系您的托管服务提供商。

(B) 将 yourdomain.com 替换为出现问题的相应域名。

警告: machine.config 文件的错误修改会导致服务器上的 ASP.NET 服务出现问题。

于 2015-04-12T08:24:24.950 回答
2

我刚刚解决了它,它可能对晚读者有用。

  • 打开 IIS 管理器 (ctrl+r inetmgr)
  • 转到您网站的功能视图
  • 单击“.NET 信任级别”
  • 将站点的信任级别设置为完全(内部)

或者

将以下内容插入站点 web.config:

<system.web>
        <trust level="Full" />
  </system.web>
于 2019-02-04T13:37:22.497 回答