安全异常(应用程序尝试执行安全策略不允许的操作))

Cod*_*orm 16 iis securityexception full-trust

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

 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.
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

非常感谢

Anj*_*ant 12

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

<system.web>
   <trust level="Full" />
</system.web>
Run Code Online (Sandbox Code Playgroud)


Wai*_*Lee 8

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

" FIX:如何解决安全例外(ASP.NET)? "作者:Anand Narayanaswamy MVP.


症状

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

例外:

System.Security.SecurityException: Request Failed
Run Code Online (Sandbox Code Playgroud)

原因:由于域未放置在IIS上自己的应用程序池下,并且由于服务器上的machine.config文件中缺少适当的信任级别,因此发生上述错误.

解析度

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

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

注意:如果已在服务器上安装了某些常用主机控制面板,则可以使用某些常用主机控制面板自动执行上述步骤.

  1. 将以下代码行添加到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>
Run Code Online (Sandbox Code Playgroud)

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

(B)将yourdomain.com替换为发生问题的相应域名.

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