【问题标题】:Security Exception (The application attempted to perform an operation not allowed by the security policy) )安全异常(应用程序试图执行安全策略不允许的操作))
【发布时间】:2015-04-12 07:52:53
【问题描述】:

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

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

非常感谢

【问题讨论】:

    标签: iis securityexception full-trust


    【解决方案1】:

    我也提供了帮助,只是在 web.config 中添加了几行代码,以便在我的网络应用程序中实现完全信任级别

    <system.web>
       <trust level="Full" />
    </system.web>
    

    【讨论】:

      【解决方案2】:

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

      Anand Narayanaswamy MVP 的“FIX: How to resolve Security Exception (ASP.NET)?


      症状

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

      例外:

      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服务出现问题。

      【讨论】:

        【解决方案3】:

        我刚刚解决了,可能对后期读者有用。

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

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

        <system.web>
                <trust level="Full" />
          </system.web>
        

        【讨论】:

          猜你喜欢
          • 2016-08-24
          • 2021-01-07
          • 1970-01-01
          • 1970-01-01
          • 2016-06-28
          • 2017-06-16
          • 1970-01-01
          • 2018-02-04
          • 1970-01-01
          相关资源
          最近更新 更多