0

web.configファイルに承認を定義するWebアプリに、次のようなロール定義のアクセスシステムを実装しています。

<location path="myPage.aspx">
    <system.web>
        <authorization>
            <allow roles="MY_ROLE" />
            <deny roles="*" />
        </authorization>
    </system.web>
</location>

ではmyPage.aspx、多くのifs を使用して、各ロールのセクションの可視性を定義しました。

私のロール構造は静的なので、この実装で特に問題はないはずですが、私のロールが動的に定義されていて、誰かがいつでもロールを追加または削除できるとしたらどうでしょうか?

私の実装は間違っていますか? 私はこの問題に慣れていないので、それを解決する一般的な方法があるかどうか知りたいですか?

4

1 に答える 1

0

動的な役割ベースの可視性を実装する方法は、使用したサーバーコントロールをサブクラス化し、役割が割り当てられたカスタムコントロール(TextBox、Label、PlaceHolder、Panelなど)を作成することでした。ページがレンダリングされると、これらのコントロールは自分の役割とログインしているユーザーの役割をチェックし、そのチェックに基づいて表示されるかどうかを確認しました。

各コントロールにはデフォルトの役割設定があったため、もちろん、その役割がデフォルトと異なる場合を除いて、各コントロールに情報を提供する必要はありませんでした。

この方法により、コードビハインドファイルが大幅に整理されました。そして、メンテナンスはかなり簡単です。

于 2012-07-24T16:41:19.003 に答える