web-dev-qa-db-ja.com

セキュリティ例外(アプリケーションは、セキュリティポリシーで許可されていない操作を実行しようとしました))

管理者ログインページを開こうとすると、次のセキュリティ例外の問題が発生します。

 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.

まず、ユーザー認証操作にメンバーシップを使用します。管理者用に2つの個別のアプリケーションがあり、それぞれに独自のWeb.Configファイルがあります。

ユーザーデータはwwwrootにアップロードされますが、管理データはwwwroot/adminおよびadmin webconfigにアップロードされ、adminのデフォルトページとしてLogin.aspxを定義し(ユーザーがmysite.com/adminを入力した場合)、adminの仮想ディレクトリを作成しました(パスがmysite.com/wwwroot/adminの/ adminという名前の2つのWeb.Configファイルがあります

面白いのは、他のプロジェクトでも同じメソッド(同じメンバーシップとweb.configおよび同じホスト)を使用していることですが、それらはうまく機能しており、前述の問題は私たちのプロジェクトのいくつかで時々発生します(常にではありませんすべてのプロジェクトの設定とインフラストラクチャはすべて同じですが、イベントが発生します。

また、問題の原因となっている可能性があるWebサービスのapp_Webreferenceフォルダーもありますが、セキュリティの信頼レベルを変更しようとしましたが、ホストはそうしません。なぜ私たちの他のいくつかのサイトでこの問題が発生しないので、現在私は問題があるように見えますが、本当に問題があるので私を助けてください

どうもありがとう

16
Code_Worm

私も助けて、web.configに数行を追加して、私のWebアプリケーションで完全な信頼レベルを許可しました。

<system.web>
   <trust level="Full" />
</system.web>
12
Anjan Kant

私は、MSDNでこの記事を見つけました。これは適切だと思います(例外の詳細は同じように見えます)。 ASP.NET 1.0および1.1に適用されると書かれていますが、2005年10月以降であるため、使用しているバージョン(おそらく4.0以上)に明示的にsayに更新されていない可能性があります):

" FIX:セキュリティ例外を解決する方法(ASP.NET)? " byAnand Narayanaswamy MVP


症状

説明:アプリケーションは、セキュリティポリシーで許可されていない操作を実行しようとしました。このアプリケーションに必要な権限を付与するには、システム管理者に連絡するか、構成ファイルでアプリケーションの信頼レベルを変更してください。

例外:

System.Security.SecurityException: Request Failed

Cause:上記のエラーは、ドメインがIISおよびサーバー上のmachine.configファイルに適切な信頼レベルがないこと。

解像度

  1. インターネットインフォメーションサービス(IIS)を使用して、適切なドメインのアプリケーションプールを作成します。リモートデスクトップにログインし、IIS Managerを開きます。ツリー[アプリケーションプール]を展開します。右クリックして[新規作成] | [アプリケーションプール]を選択し、必要な詳細を入力します。

  2. 次の手順では、新しく作成されたアプリケーションプールの下にドメインを配置します。このアクションを実行するには、「Webサイト」というラベルの付いたツリーを展開し、その下の「デフォルトWebサイト」を展開します。ドメイン名を選択して右クリックし、[プロパティ]メニュー項目を選択します。 [アプリケーションプール]というラベルのドロップダウンボックスを選択し、新しく作成されたアプリケーションプール名を選択します。

注:サーバーにインストールしている場合、特定の一般的なホスティングコントロールパネルを使用して、上記の手順を自動的に実行できます。

  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>

(A)上記の問題を解決するには、サーバーの管理者権限とリモートデスクトップへのアクセスが必要です。サーバーにアクセスできない場合は、ホスティングサービスプロバイダーにお問い合わせください。

(B)yourdomain.comを、問題が発生している適切なドメイン名に置き換えます。

警告:machine.configファイルの不適切な変更は、サーバー上のASP.NETサービスに問題を引き起こします。

8
Wai Ha Lee

私はそれを解決しました、それは遅い読者にとって役に立つかもしれません。

  • Open IIS manager(ctrl + r inetmgr)
  • サイトの機能ビューに移動します
  • 「.NET信頼レベル」をクリックします
  • サイトの信頼レベルを[完全(内部)]に設定します

OR

次のサイトをweb.configサイトに挿入します。

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