2012-01-11 31 views
5

このエラーを修正する方法の正しい方向を教えてもらえますか?System.Security.SecurityException:プリンシパルアクセス許可の要求が失敗しました

System.Web.Services.Protocols.SoapException: Server was unable to process request. 
    ---> System.Security.SecurityException: Request for principal permission failed. 
at System.Security.Permissions.PrincipalPermission.ThrowSecurityException() 
at System.Security.Permissions.PrincipalPermission.Demand() 
at System.Security.PermissionSet.DemandNonCAS() 
at LiveDocx.MailMerge.SetLocalTemplate(String template, String format) 

私の会社がLiveDocxから購入したこのソフトウェアをインストールしました。だから、コードを修正したり、コードを読むことさえできません。私はドキュメントに従ってすべてをインストールし、サイトは動作することが確認されています。 IIS、フォルダのアクセス許可、およびWeb.configの設定のみを変更できます。私たちのサーバー、そのソフトウェア。

今、私はウェブサービスにログインしている問題を抱えています。あなたが石鹸クライアントだと思う前に、ベンダーのサーバーを呼び出すことによって動作することを確認しました。

ローカルでは、ログイン中に正常にWebサービスを呼び出すことができ、正常に動作します。しかし、私が後で電話をかけると、私はRequest for principal permission failedになります。

テクニカルサポートの依頼で、私は<trust level="Full" />をweb.configに追加しましたが、動作しませんでした。今、彼らは私たちの電子メールに返信を停止しました。

私はASP.NET開発者ではないため、私の知識はサーバーの設定に制限されています。誰かが正しい方向に私にこのエラーが発生する理由とこの問題を解決するためにいくつかの場所を指摘できますか?

答えて

2

最終的に解決策が見つかりました。このアクセス許可に関するエラーは、少し誤解を招くものです。多くの試行錯誤の末、私は最終的にアプリケーションプールのユーザーのアクセス許可をこの問題とは何の関係もないと受け入れました。私はweb.configの設定を調べるために私を導き、それが問題を見つけた場所です。

提供されたweb.configファイルには、<authentication>タグと必要な設定がなかったという問題がありました。このタグ(私の理解から)は、クッキーを有効にするものです。私はこれがLiveDocxに関係していなくても、このエラーで他の人を助けてくれることを願っています。 Request for principal permission failed.と思われるのはいろいろな理由で起きる可能性があります。

この記事では、私が間違っているクッキー名を使用するように構成されたウェブサイトの下でアプリケーションを持っていたので、私はこれに走ったHow To: Use Membership in ASP.NET 2.0

2

私が最も可能性が高いIISアプリケーションが実行されているウェブサイトのASP.Netアプリケーションプールの利用者である要求を、実行しているユーザーのIDを疑うだろう。

これをテストする最も簡単な方法現在のアプリケーションプールに他のアプリケーションがない限り、IISアプリケーション用の新しいアプリケーションプールを作成することです。アプリケーションプール用に別のIDを選択します(ネットワークサービスから始めることもできますが、ローカルユーザーが必要です)。あなたのアプリをそのプールに割り当てます。

これは、アプリケーションプールIDの権限の問題であるかどうかを教えてください。

+0

ええ、それはアプリケーションプールではありません。私はあらゆる可能なユーザーを試してみて、各ユーザーに完全な権利を与えました。 –

2

とても役に立ちました。

私のルートWebサイトでweb.configファイルは、この

<authentication mode="Forms"> 
    <forms name="AuthCookie" path="/"></forms> 
</authentication> 

とその下のアプリケーションのWebを持っていたように見えました。その下の設定は、だから、認証が必要ですが、クッキーの名前が間違っていたので、それはそれを持っていなかったこの

[PrincipalPermissionAttribute(SecurityAction.Demand, Role = "Foo", Authenticated = true)] 

のように見えたのコンストラクタでWebフォームを持っていたこの

<authentication mode="Forms"> 
    <forms name="WRONGCOOKIENAME" path="/"></forms> 
</authentication> 

アプリケーションのように見えました。 Cookie名を修正すると、エラーが解決されました。

2

私は同様の問題がありました。私はフォームアプリケーションを使用していましたが、この問題が発生し続けています。私もプリンシパルの許可とセキュリティアクションの要求を使用していました。

すべてのweb.config関連の設定を試しましたが、最終的な問題はアプリケーションプールにありました。

アプリケーションをWinXPからWin7以上のバージョンに移行する場合、デフォルトでWebサイトを統合モードに設定している管理パイプラインが表示されることがあります。私はこの問題を解決した古典モードに変更しました。うまくいけば、WinXpからWin7にアプリケーションを移動しようとしているメンバーに役立ちます。

関連する問題