1

以前は完全に機能していたテストサーバーでMVCアプリケーションを使用しています。2番目のアプリケーションがログインに使用するサーバー上にアカウントを作成します。クレデンシャルストアとPrincipalContextおよびUserPrincipalオブジェクトを使用してこれらのアカウントを作成します。

私はこのアプリのテストバージョンを数か月またはおそらくほぼ1年間使用していません。アプリケーションでアカウントを作成しようとすると、次のエラーが発生します。

アクセスが拒否されました。ASP.NETは、要求されたリソースへのアクセスを許可されていません。リソースへのアクセス権をASP.NET要求IDに付与することを検討してください。ASP.NETには、アプリケーションが偽装していない場合に使用される基本プロセスID(通常、IIS5では{MACHINE}\ AS​​PNET、IIS6およびIIS7ではネットワークサービス、IIS 7.5では構成済みのアプリケーションプールID)があります。アプリケーションがを介して偽装している場合、IDは匿名ユーザー(通常はIUSR_MACHINENAME)または認証された要求ユーザーになります。

ASP.NETにファイルへのアクセスを許可するには、エクスプローラーでファイルを右クリックし、[プロパティ]を選択して、[セキュリティ]タブを選択します。「追加」をクリックして、適切なユーザーまたはグループを追加します。ASP.NETアカウントを強調表示し、目的のアクセスのチェックボックスをオンにします。

匿名アクセスを確認しましたが、このアプリの製品版にも匿名アクセスを拒否するルールがあり、正常に動作しています。このアプリケーションは、機能しているときでも偽装を使用したことはなく、ASP.NETへの明示的なアクセスを許可することは一般的に推奨されていないと聞いています。Visual Studioを使用してアプリケーションをローカルで動作させることはできますが、テスト用に展開されたバージョンで引き続きこのエラーが発生します。評価者はテストのためにサイトを再公開しませんが、おそらくそれが残っている唯一のオプションですか?これを引き起こすためにセキュリティ設定で変更された可能性のある明らかなものはありますか(私にはわかりません)?私はまだ運がなくて研究中です。

ありがとうございました!

4

1 に答える 1

2

適切なレベルのアクセス権を持つサービスアカウントをApplicationPoolIdentityに提供する必要があります。Studioを使用している場合、アクセスにユーザーアカウントを使用するため、ほぼ確実に使用できます。アプリケーションがIISにインストールされると、利用可能な最低レベルのアクセスが使用されますが、それだけでは不十分です。大きく開くことはお勧めしませんが、この特定の目的のためにアクセス制限付きサービスアカウントを確立すると、システムや個人のアカウントを危険にさらすことなくアプリケーションを機能させることができます。

于 2012-10-24T14:45:05.550 に答える