0

IIdentityインターフェイスはAuthenticationType、ユーザーがx509または基本的なユーザー名/パスワード認証でログオンする場合、状況が少し異なるため、考慮したいプロパティを公開します。

[PrincipalPermission(SecurityAction.Demand, Role = "BigBoss", AuthenticationType="basic")]
protected static void DoSomething() {}

しかし、私はできません。さらに、 と の両方PrincipalPermissionPrincipalPermissionAttribute封印されているため (ありがとうございます)、必要な機能を追加できません。これは何らかの特別な理由によるものですか、それとも単なる設計上の欠陥ですか? 回避策はありますか?

4

1 に答える 1

1

どちらもセキュリティに関連していますが、認証と承認は実際には別の問題であり、承認を認証メカニズムに直接結合することは一般的に特に良い考えではありません。

このようなカップリングを追加するやむを得ない理由があると思われる場合は、いくつかのアプローチを利用できます。

  1. 認証メカニズムを反映するロールをプリンシパルに追加し、後者が重要な場合は、焦点ロールと認証メカニズムの疑似ロールの両方を要求します。
  2. PrincipalPermissionとが封印されている間、PrincipalPermissionAttributeあなたが望むことを行う類似の型を作成することを妨げるものは何もありません。

PrincipalPermission#2 については、すべてのロジックを最初から再作成する代わりに、ラップするカスタム アクセス許可を作成するカスタム属性を作成することで回避できます。

于 2011-11-11T19:05:04.573 に答える