トリミングされたセキュリティを作成しようとしています(基本的に、権限がない場合はレンダリングしないでください)Html.RenderAction。
目的は、さまざまなウィジェット/ページコンポーネントを表示することであり、ユーザーがアクションに対する権限を持っていない場合、RenderActionは呼び出されません(または少なくともログインページへのリダイレクトは発生しません)。たとえば、ページはログインしているすべてのユーザーに表示されます。ただし、HR、ビジネス開発専用のパーツがあり、HRとビジネス開発の場合は、両方のパーツなどを入手できます。
RenderActionによって呼び出される各パーツはスタンドアロンであるため、必要なすべてのパーツを含むページを簡単に作成できますが、ユーザーが許可されていない場合、それらは表示されません。誰かが権限を持っていないアクションに対してRenderActionを呼び出すと、ログインページにリダイレクトされます。
リンクで同様のことが行われているのを見たことがありますが、アクションで同様のことを行った人はいますか?
私は次のようなものを手に入れたいと思っていました:
@Html.RenderSecurityTrimmedAction("Main","Business-Widget1")
@Html.RenderSecurityTrimmedAction("Main","HR-Widget")
@Html.RenderSecurityTrimmedAction("Main","General-Widget3")
ウィジェットへのアクセスは、個人の現在の役割に基づいています。私はセキュリティアクセスが完全に機能しています。これは主に、ユーザーに権限がない場合にアクションを無意識に実行しないRenderActionを作成することです。
コードをDRYのままにしておきたいので、多くのViewModelプロパティを保持してから、すべてのHtml.RenderActionをifステートメントでラップする必要はありません。これらのコンポーネントはさまざまな場所に表示されるので、プラグアンドプレイで使用してください。