3

私は自分のオフィスで最初のプロジェクトに取り組んでおり、クレームベースの承認で "Windows Identity Foundation" を使用する予定です。この目的のために、Microsoft .net は ClaimsAuthorizationManager 抽象クラスを提供します。このクラスを使用するには、コンストラクターとCheckAccess(context as ClaimsAuthorizationContext).

コンストラクターはすべてをセットアップします。次に、ユーザーが Web ページなどの何かにアクセスすると、CheckAccessユーザー、アクセスするリソース、およびリソースに対して実行するアクションを示すパラメーターを使用して呼び出されます。たとえば、アクションを実行するためにリソースへのアクセス権をCheckAccessユーザーに付与する必要があるかどうかを確認するために呼び出すことができます。 またはを返すだけです。Windows Identity Foundation は、考えられるほぼすべての方法を柔軟に実装できるようにします。Bobhttp://www.mysite.com/SecretPage.aspxGETCheckAccesstruefalseCheckAccess

Microsoft が提供するコード サンプルではCheckAccess、​​ユーザーが 21 歳以上であることを示す誕生日クレームを持っている場合にのみアクセスを許可するように構成されています。このポリシーは、web.config でプレーンテキストで指定され、ClaimsAuthorizationManagerコンストラクターで読み取られます。

私のオフィスでは、SQL を使用してほぼすべてのデータを追跡しています。ClaimsAuthorizationManagerユーザーがリソースにアクセスできるかどうかを判断するために、SQL からデータを読み取るように をプログラムすることは理にかなっていると思います。ただし、考えられるポリシーは無数にあります。ClaimsAuthorizationManager現在のプロジェクトに役立ち、現在作成しているプロジェクトをリッピングして置き換えることなく、将来的に構築および改善できるを作成したいと考えています。

このプロジェクトを進めていく上で、最も重要なことは何ですか?

更新: 私は、必須請求ポリシーを文字列として表すシステムに取り組んできました。ポリシーをグループ化するために二分木ロジックを使用しています。「リソース」と「アクション」に関連するクレームのデータベースを維持しています。

ここで他の誰かが ClaimsAuthorizationManager クラスを作成しましたか?

4

1 に答える 1

1

無駄なコードを書かないようにすることを楽しみにしていることは励みになりますが、自分より先を行っていると思います。

特定のシナリオで何が理にかなっているのかを自分で判断するには、使い捨てとして扱われる 1 つ以上のスパイクを生成する必要があります。

つまり、すべてのルールがデータベースにある場合は、構成ファイルから sproc 名を読み取る sproc ベース CAM を作成します。CheckAccess 引数は変更されないため、sproc 署名は不変であり、必要に応じて切り替えることができます。

于 2010-02-09T04:44:25.107 に答える