問題タブ [principalpermission]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wcf - WCF サービスでのエラー処理
次のサービス メソッドの例:-
呼び出し元が正しい役割にない場合に、メソッドからエラーを取得するにはどうすればよいですか。設計時に、エラーはメソッド行 (つまり、パブリック文字列 GetTest) で中断し、catch に到達しません。実行時に、Silverlight アプリケーションで未処理のエラーとして報告されます (そこにも try.. catch ブロックがあります)。try ブロックに入らないため、エラーをキャッチする場所がないようです!!
silverlight - WCF サービスが SSL に移行されると、PrincipalPermission.Demand() が失敗する
私の Silverlight/WCF アプリケーションは、各サービス メソッドで PrincipalPermission を使用して、ユーザーが認証されていることを確認します。これは、すべてが HTTP に構成されている場合は問題なく機能しますが、サービス エンドポイント/バインディングを HTTPS (SSL) をサポートするように構成すると、PrincipalPermission オブジェクトの Demand() メソッドを呼び出すと例外がスローされます。
編集: このプロジェクトのホストとデバッグに IIS 7.5 Express を使用していることに言及する必要があります。
ユーザーが認証されていることを確認するメソッドを次に示します。これは、各サービス メソッドから呼び出されます。
}
スローされる実行は、「プリンシパルのリクエストが失敗しました」です。
私のweb.configファイルの重要な部分は次のとおりです。
ClientConfig は次のとおりです。
誰かがここで正しい方向を示してくれることを願っています。 繰り返しますが、この構成は、サービスを SSL 用に構成するまで問題なく機能します。何かご意見は?
ありがとう、
-スコット
私は問題を見つけたと思って、自分の質問に答えましたが、間違っていました。まだ同じ問題があります。
c# - winformアプリのメソッドで昇格要求が機能しない
他のアプリをループでインストールする winforms アプリがあります。これは Windows 7 の管理者アカウントでは適切に機能しますが、標準アカウントでは深刻な問題があります。"Program Files(x86)" フォルダーに書き込むには、アプリで昇格が必要です。
したがって、次のコードを使用して、winforms c# アプリで特定のメソッド (インストーラーを実行するメソッド) の昇格を要求しようとしています。
エラーを受け取った後、上記の属性を持つメソッドを呼び出す前に、次のように記述する必要があることを Web から学びました。
私はこれを行いましたが、メソッドはまだ次のエラーをスローします:
プリンシパル許可の要求に失敗しました。
段階的なデバッグは SetPrincipalPolicy 行を渡しますが、Demand 属性を持つメソッドに到達すると、SetPrincipalPolicy が存在しなかったかのように、同じエラーをスローします。
Demand 属性を適切に設定するのに何か問題がありますか?
前もって感謝します。
LATER EDIT:ここで要求されているのは、アプリをサイレントインストールするときに昇格要求をトリガーするはずのコードです(ただし、機能しません):
私が必要としているのは、アプリが Windows 標準ユーザーで実行された場合、そのプロセスが管理者のユーザー名とパスワードを求めるダイアログを表示することです。上記のプログラムで開始されたプロセスのみを管理者として実行する必要があり、メイン アプリ自体は標準ユーザーのままにすることができます。
.net - PrincipalPermission(Attribute) が認証タイプを尊重しないのはなぜですか?
IIdentity
インターフェイスはAuthenticationType
、ユーザーがx509または基本的なユーザー名/パスワード認証でログオンする場合、状況が少し異なるため、考慮したいプロパティを公開します。
しかし、私はできません。さらに、 と の両方PrincipalPermission
がPrincipalPermissionAttribute
封印されているため (ありがとうございます)、必要な機能を追加できません。これは何らかの特別な理由によるものですか、それとも単なる設計上の欠陥ですか? 回避策はありますか?
wcf - WCF CustomRoleProvider と原則のアクセス許可
編集: WCF サービスが SSL に移動されると、SSL PrincipalPermission.Demand()を使用しているため、問題は以下の問題に関連している可能性があると思います
私は安全な一連の Web サービスに取り組んでおり、ユーザーを認証するために CustomRoleProvider と CustomMembershipProvider を実装しました。
これはうまく機能しますが、ユーザーが認証されていない場合、サービス呼び出しの大部分へのアクセスを制限したいと考えています。
私はこれを達成するために以下を使用することを計画しました
ただし、これはユーザーが認証されたときに検出されないようで、常にセキュリティ例外がスローされます。何が間違っていたのかよくわかりません。
認証サービスの呼び出し内で、メンバーシップ プロバイダーが true を返し、フォーム認証 Cookie を設定するかどうかを確認します。
次のように、Web構成でサービス承認を設定しました。
どんな助けでも大歓迎です、ありがとう
編集:
この問題をさらに調査したところ、プリンシパルが正しく設定されていることがわかりました。私は次の Service メソッドを持っています。その中でプリンシパルを取得し、ユーザーが正しい役割にあるかどうかを確認し、最初のタグが行っていることを効果的に実行します。
このメソッドは現在、毎回 SecurityException をスローしますが、最初にプリンシパルのアクセス許可をコメントアウトすると、メソッドは機能し、true を返します。
asp.net - ASP.Net メンバーシップ プリンシパル権限の問題
PrinciplePermissionAttribute
例外の原因となる問題が発生しています。メソッドに属性があるページは、Load
最初のログインの直後に例外をスローします。
これにより、例外がスローされますRequest for principal permission failed
。
これを削除すると、ページが正常に読み込まれ、同じ属性を持つ別のページに移動でき、問題なく動作します。また、メンバーシップ システムRoles.IsUserInRole()
機能を使用する場合、問題はありません。
最初のログイン後、 myThread.CurrentPrincipal
はタイプGenericPrincipal
ではなくRolePrincipal
. 後続のリクエストでは、ジェネリックの代わりに正しいタイプが表示されます。Global.asax
イベントのファイルでこれを強制しようとしましたが、これが発生した後PostAuthenticate
にasp.netが設定されているようです。GenericPrincipal
この動作を修正する方法についてのアイデアはありますか、またはそのRoles.IsUserInRole()
方法を使用して立ち往生していますか?
UPDATEここ
でパイプラインで何が起こっているのかについての説明を見つけた後、なぜそれを変更しても役に立たなかったのかがわかります。これをテストした以前のプロトタイププロジェクトがありましたが、そこで再現できませんでした。プロジェクトの種類と関係があるのだろうか。プロトタイプは Web サイト プロジェクトであり、問題のあるプロジェクトは Web アプリケーション プロジェクトです。Global.asax
GenericPrincipal
が に変更されるのは奇妙だと思いますRolePrincipal
が、最初のリクエストが処理された後でのみです。したがって、「Page_Load」が実行される前に発生しないように、機能していないとは言い難いです。
c# - PrincipalPermission は一部の AD グループでのみ機能します
以下は完全に機能します(DOMAIN\DEVELOPERS
):
実行するユーザーはこのグループのメンバーなので、「もちろん」機能します。という名前のこのWCFサービス用に、別のグループがAdvisoryWcfUsers
あります。これには、いくつかのユーザーとグループが含まれています(AD内;そうですDOMAIN\AdvisoryWcfUsers
)。私がこのグループのメンバーであることは 100% 確信していますが、それにもかかわらず、次のようになります。
System.ServiceModel.Security.SecurityAccessDeniedException: アクセスが拒否されました
タイプミスではなく、IIS がこの新しいグループを検索する権限を持っていないようです。このDEVELOPERS
グループは「古い」グループAdvisoryWcfUsers
ですが、この目的のために今日作成されました。助言がありますか?
wcf - WCF: PrincipalPermissions を使用したカスタム RoleProvider: ヒットしないようです / デバッグする方法は?
RoleProvider を継承するカスタム ロール プロバイダーがあります。Web アプリでは、これは問題なく正常に動作します。
ただし、WCF サービスでも使用しており、ステップインするのに大きな問題があります。まったく当たらないのではないかと思うほどです。プリンシパルのアクセス許可をまったくオンにすると、アクセスが拒否され、スタック トレースはまったく役に立ちません。WCF トレースでさえ、何が起こったのかを確認するのに非常に役立ちません。
私は、TennisRoleProvider がデフォルトのコンストラクターから動作し、テストによってそのメソッドを検証したことを知っています。統合の問題のようです。
だからスニペット...
EDIT:その後、ロールプロバイダーをサービスアセンブリに移動しました.GAKとキーを含める必要があることについて何かを読んでください(完全な信頼で実行する必要があります)。私はその道をたどりましたが、それでもうまくいかなかったので、単純化するために単純にサービスプロジェクトに移動することにしました。まだ喜びはありません。
次に、サービスメソッドには次のものがあります(Roles.Family管理者は文字列です)
2 つの質問があります... 1) 私は何を間違えましたか? 2) WCF にアクセスして、何が問題なのかを正確に把握するにはどうすればよいですか?
乾杯
ログのエラーのスタック トレースは次のとおりです。アクセス許可は、上記で使用したものとは異なることに注意してください (Namley は「FamilyAdmin」ではなく「承認済み」です。ただし、実際には、これらの値は一致し、ユーザーは正しい権限。
編集: 以下の回答に基づいて、コンストラクターに数行のコードを追加しました。これにより、何も達成されませんが、スレッドの静的クラスに問い合わせることができました。
編集:ログについての質問があった場合、それが実際にログからのものであることを示すためにログを更新しました-または私は混乱しています;)
TennisRoleProvider は、その非パブリック メンバーで参照されます。さらに、Name をオーバーライドして何かを返すようにすると、これが返されたことがわかります。
c# - Global.asax エラー ハンドラーまたはカスタム IHttpModule エラー ハンドラーによってキャッチされない未処理の例外
ロールを使用してアクセスを制限したいクラス (DPCal_EventMove) のメソッドが 1 つあります。Global.asax.cs エラー ハンドラーとカスタム IHttpModule エラー ハンドラーの両方を使用して、未処理の例外をキャッチし、それらを GlobalExceptionHandler.aspx に Server.Transfer します。何らかの理由で、PricipalPermission で装飾されたメソッドによって発生した未処理の例外が、どちらのエラー ハンドラーにもルーティングされません。私の質問は次のとおりです。この例外はどこにルーティングされ、どのようにキャッチして処理するのですか?
以下は、私の Global.asax.cs ファイルです。
以下は、私のカスタム IHttpModule ハンドラーです。
GlobalExceptionHandler.aspx の Page_Load に達することはありません。
c# - PrincipalPermission がクラス レベルで適用されたときのアクセス許可エラー
上記のコードを試してみると、コンパイル時エラーが発生せず、アクセス許可が適用されません。有効なロールであっても、コード メソッドを実行できません。有効な役割であっても、許可が拒否されたというエラーが発生します。
これは、メソッド レベルの宣言では機能しますが、クラス レベルの宣言では機能しません。
私にお知らせください。ありがとう