過去数日間、asp.netのメンバーシップとロールについて多くのことを読んでいて、フォームベースの認証を使用してプロジェクトに実装しようとしています。WSAT を使用したユーザー/ロールの管理から、コードでの urser/ロール/アクセス ルールの管理まで、インターネットで見つけたほとんどのサンプルを試しました。開発者の側でほとんど労力をかけずに優れた機能を提供することは間違いありませんが、asp.net での承認はページとディレクトリへのアクセスを制限する方法しか提供しないという感覚をどのように発達させましたか。すべてのユーザーがアクセスできるページがあり、ユーザーの役割に基づいて、ページがユーザーにさまざまな機能を提供するとどうなりますか (一般的なシナリオ - SO が使用しているように)。確認できるのにRoles.IsUserInRole(role)
コードでさまざまな役割のページをカスタマイズしますが、機能をコーディングしてより多くの役割を作成し、ユーザー (管理者) がより多くの役割を作成できるようにすることができます。アプリケーションが起動して実行されると、ユーザー (管理者) は新しい役割を作成します。ページでそのような役割をどのように処理すればよいでしょうか?
2 に答える
良い。Roles.IsUserInRole(role) を使用して、さまざまな役割のページをカスタマイズできることは間違いありません。したがって、ページやディレクトリへのアクセスを制限するだけではありません。
ユーザー管理者によって作成された新しい役割に対応する方法、およびこれらの新しい役割にページを適応させる方法を尋ねている場合...そうですね、あなたが話していることの用語は「動的役割」だと思います. 誰が何にアクセスできるかをユーザーが決定し、異なるアクセス権を持つ新しいロールを作成するシステムが必要な場合は、動的ロールをサポートするシステムが必要です。
私は、このようなシステムを手作業でコーディングしようとする試みを数多く見てきましたが、個人的にはうまくできたものをまだ見たことがありません。まさにそれを実行し、それをうまく実行する一部のシステムは、商用 CMS (コンテンツ管理システム) です。そのようなシステムが実際に必要な場合は、それらのいくつかを検討することをお勧めします。
ASP.NET の組み込みの役割管理機能は優れていますが、実際には静的な役割の状況を対象としています。たとえば、"Payables Clerks"、"Receivables Clerks"、および "Managers" が存在し、人々が役割を変更する可能性がありますが、役割自体とその中の人々がする必要があることはあまり変わりません。